El complemento Maven jarsigner no funciona durante el lanzamiento

Necesito firmar los archivos jar liberados y quiero hacerlo con el complemento maven jarsigner. Así que lo agregué así:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jarsigner-plugin</artifactId>
            <version>1.2</version>
            <configuration>
                <archive>target/${myarchive}.jar</archive>
                <keystore>${key.location}</keystore>
                <storepass>${keypass}</storepass>
                <alias>${key.alias}</alias>
                <verbose>true</verbose>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>sign</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Proporciono los parámetros que faltan en la línea de comando.

Cuando corro mvn install todo funciona bien y el archivo está firmado. Pero cuando corro release:prepare release:perform el complemento jarsigner falla: `Los parámetros 'alias' para el objetivo org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign faltan o no son válidos'

Cuando ejecuto en modo de depuración, veo lo siguiente:

Para mvn install:

[DEBUG] Configuring mojo org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign from plugin realm ClassRealm[plugin>org.apache.m
aven.plugins:maven-jarsigner-plugin:1.2, parent: sun.misc.Launcher$AppClassLoader@6d6f0472]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign' with basic configurator -->
[DEBUG]   (f) alias = myalias
[DEBUG]   (f) archive = myarchive
[DEBUG]   (f) arguments = []
[DEBUG]   (f) keystore = mykeystore
[DEBUG]   (f) processAttachedArtifacts = true
[DEBUG]   (f) processMainArtifact = true
[DEBUG]   (f) project = MavenProject: com.playtech.chat:ums_supportchatapplet:12.4-SNAPSHOT @ *********\pom.xml
[DEBUG]   (f) removeExistingSignatures = false
[DEBUG]   (f) skip = false
[DEBUG]   (f) storepass = changeit
[DEBUG]   (f) verbose = true
[DEBUG] -- end configuration --

Pero cuando corro release:prepare release:perform, Veo:

Configuring mojo org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-jarsigner-plugin:1.2, parent: sun.misc.Launcher$AppClassLoader@553f5d07]
[INFO] [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign' with basic configurator -->
[INFO] [DEBUG]   (f) archive = myarchive
[INFO] [DEBUG]   (f) arguments = []
[INFO] [DEBUG]   (f) processAttachedArtifacts = true
[INFO] [DEBUG]   (f) processMainArtifact = true
[INFO] [DEBUG]   (f) project = MavenProject: com.playtech.chat:ums_supportchatapplet:12.4.0.1 @ *****\pom.xml
[INFO] [DEBUG]   (f) removeExistingSignatures = false
[INFO] [DEBUG]   (f) skip = false
[INFO] [DEBUG]   (f) verbose = true
[INFO] [DEBUG] -- end configuration --

Así que excepto de archive propiedad, otras propiedades se ignoran durante la liberación.

Cualquier idea es muy apreciada.

preguntado el 22 de mayo de 12 a las 09:05

2 Respuestas

Encontré la respuesta.

En Pocas Palabras -D los argumentos no se pasan desde la línea de comando al complemento de lanzamiento.
-Darguments= debe ser usado.

Para más detalles por favor lea esto blog que me ayudó a resolver este problema.

contestado el 22 de mayo de 12 a las 12:05

Ingrese este comando en el símbolo del sistema cmd:

keytool -list -keystore [keystore location here]

¿Está el alias 'myalias' en ese almacén de claves específico? Si no, tendrás que crear una.

La única otra cosa que puedo ver que podría salir mal es si la contraseña es incorrecta para ese almacén de claves.

contestado el 22 de mayo de 12 a las 10:05

¿Leíste toda la pregunta? ¿Viste que en el segundo caso, la contraseña no se transfiere al complemento? ¿Ninguno de los alias lo hace? - registro tardío

Usted mencionó al final de su pregunta 'Cualquier idea es muy apreciada', obviamente, no son apreciadas, ya que se siente obligado a rechazar tales ideas. ¿Cómo sé que aún no ha creado un alias en su almacén de claves? Ten algunos modales para las personas que están tratando de ayudar. Ya es un esfuerzo entender tu pobre inglés. - alex.p

Otra idea que probablemente rechazará si doy como respuesta es que la ejecución de su complemento se encuentra en la fase de paquete. ¿Están los objetivos de lanzamiento:preparar lanzamiento:realizar aguas abajo de la fase del paquete? Si no, el complemento nunca se ejecutará. Lo que explica por qué su instalación funciona. - alex.p

Cualquier idea relacionada. No solo algunas ideas que pasan por tu cabeza. Si estuviera leyendo la pregunta completa, vería que generalmente funciona, pero no durante el lanzamiento, por lo que el almacén de claves debe estar bien. - registro tardío

El complemento se ejecuta. Por lo demás no fallaba. Incluso imprime la información de depuración y la puse en la pregunta original. - registro tardío

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.