我使用2個密鑰庫:
- 其被存儲在SCM開發密鑰庫。 CI服務器因此可以簽署快照。
- 生產密鑰庫具有由信任的證書頒發機構頒發的真實生產證書。
開發密鑰庫密碼位於pom.xml
。這裏是我的pom.xml
片段:
<plugin>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<configuration>
<storetype>${keystore.type}</storetype>
<keystore>${keystore.path}</keystore>
<alias>${keystore.alias}</alias>
<storepass>${keystore.store.password}</storepass>
<keypass>${keystore.key.password}</keypass>
</configuration>
</plugin>
<!--
... rest of the pom.xml ...
-->
<properties>
<keystore.path>cert/temp.keystore</keystore.path>
<keystore.type>JKS</keystore.type>
<keystore.alias>dev</keystore.alias>
<keystore.password>dev_password</keystore.password>
<keystore.store.password>${keystore.password}</keystore.store.password>
<keystore.key.password>${keystore.password}</keystore.key.password>
</properties>
在~/.m2/settings.xml
我定義了一個codesgining
簡介:
<settings>
<profiles>
<profile>
<id>codesigning</id>
<properties>
<keystore.path>/opt/prod/prod.keystore</keystore.path>
<keystore.alias>prod</keystore.alias>
<keystore.type>JKS</keystore.type>
<keystore.store.password>${keystore.password}</keystore.store.password>
<keystore.key.password>${keystore.password}</keystore.key.password>
</properties>
</profile>
</profiles>
</settings>
當我要簽署真實證書我調用行家與-Pcodesigning -Dkeystore.password=strongPassword
參數。我還配置了maven-release-plugin以使用codesigning
配置文件。
實際上,只要該文件除了您之外別人都可讀,就可以將密碼存儲在settings.xml
中。
來源
2010-09-01 17:22:07
Jcs
我們以同樣的方式。除了生產密鑰庫密碼存儲在配置文件settings.xml中。並且該配置文件由構建服務器自動調用。 – 2010-09-03 06:59:27
另請注意,由於此錯誤,您的別名不能包含單引號字符:http://jira.codehaus.org/browse/MJARSIGNER-11 – 2010-12-20 22:38:22
從版本1.3開始,jar簽名插件支持maven加密。這使得在settings.xml中存儲密碼相對安全。詳情請參閱http://maven.apache.org/guides/mini/guide-encryption.html。 – Rob 2014-01-31 04:55:40