当我在我的项目上调用release:peform
时。它调用deploy
,然后调用gpg
。我想使用系统属性或环境变量将gpg密码传递给流程,但似乎都不起作用。
如果我调用mvn.bat '-Darguments="-Dgpg_passphrase=test"' -Pwindows-i386-msvc-debug -DconnectionUrl=scm:hg:https://boost-maven-project.googlecode.com/hg/ release:perform
,Maven最终会调用:
cmd.exe /X /C mvn deploy --no-plugin-updates -Psonatype-oss-release -P windows-i386-msvc-debug,always-active -f pom.xml"
正如您所看到的,环境变量和-Darguments
命令行参数都不会传递给deploy
目标。有什么想法吗?
答案 0 :(得分:0)
您已配置为-Denv.gpg_passphrase=test
,如果我错了,请纠正我。我知道您正在尝试传递此处不允许的环境变量。它是一个名为env.gpg_passphrase
的系统属性。 -D
始终是系统属性。
如果您想使用环境变量,请通过操作系统配置进行配置。如果您想使用系统属性,请使用-D。请不要混用这两种类型。
恕我直言,我有一个场景,因为你提到要签署这件神器。我通过在构建部分明确指定“maven-release-plugin”进行配置,如下例所示。<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>${my.maven.release.version}</version>
<configuration>
<arguments>${my.release.arguments}</arguments>
</configuration>
</plugin>
<plugins>
</build>
出于安全目的,我还在每个开发人员 settings.xml 中配置名为 my.release.arguments 的属性(不要共享密码,例如user / password / private键等)。我想通过查看签名来了解并确定谁发布了这些工件。
我希望这可能有所帮助。
此致
Charlee Ch。
答案 1 :(得分:0)
事实证明这是由Sonatype错误造成的:https://issues.sonatype.org/browse/CENTRALSRV-35