【发布时间】:2013-01-01 21:48:45
【问题描述】:
我有一个 Maven 项目,我正在尝试将其配置为使用 maven 发布插件。发布过程的一部分是使用 Maven GPG 插件对工件进行签名,这需要 GPG 签名密钥密码短语才能成功。因为这些构建需要在非交互环境中运行,(CI-Server)这些参数作为参数传递给maven,形式为
-Dgpg.passphrase=XXX
对于快照构建,一切正常; Maven GPG 插件会看到传入的密码短语,按预期构建、签名和部署工件,但是,当我尝试使用发布插件时,系统会提示我输入 gpg 签名密钥密码。我已经阅读了几个关于类似问题的讨论,这些问题源于发布插件分叉另一个不接收传入参数的 maven 调用。最流行的修复方法似乎是像这样使用“arguments”参数:
-Darguments="-Dgpg.passphrase=XXX"
据说这会传递给分叉的实例,但不幸的是对我来说它并没有摆脱提示。
由于对工件进行签名并不是将发布工件部署到公共 maven 存储库的常见先决条件,并且大概大多数生产这些工件的实体都使用某种形式的 CI,我无法想象我是唯一遇到此问题的人。有人找到解决方法了吗?
关于已接受答案的说明:
接受的解决方案将 - 不适用于 Maven 3.0 - 3.0.3 和 3.0.3 恰好是在 OSX Mountain Lion 上默认安装的 java。您需要升级到 3.0.4。
【问题讨论】:
-
如果您想对已接受的答案发表评论,请使用该答案下方的评论选项
标签: maven code-signing maven-release-plugin gnupg