我需要对发布的JAR文件进行签名,我想使用Maven的jarsigner插件来完成。因此,我像这样添加了它:
<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>
我会为命令行提供缺失的参数。
当我运行mvn install
时,一切都正常,档案被签名。但是当我运行release:prepare release:perform
时,jarsigner插件失败了:`目标org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign的参数'alias'丢失或无效'。
当我以调试模式运行时,看到以下内容:
对于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 --
但是当我运行
release:prepare release:perform
时,出现以下情况: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 --
除了
archive
属性之外,在发布期间其他属性都会被忽略。欢迎提出任何想法。