Maven:如何从发布版传递命令行参数:执行部署?
当我在我的项目上调用release:peform
时。它会调用deploy
,然后调用gpg
。我想使用系统属性或环境变量将gpg密码传递到进程中,但似乎都不起作用。Maven:如何从发布版传递命令行参数:执行部署?
如果我调用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
目标。有任何想法吗?
您已配置为-Denv.gpg_passphrase=test
,请纠正我,如果我错了。我明白你正在尝试传递这里不允许的环境变量。它是一个名为env.gpg_passphrase
的系统属性。 -D
始终是系统属性。
如果您想使用环境变量,请改为通过OS配置进行配置。如果您想使用系统属性,请使用-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属性(不共享的秘密,例如用户名/密码/私钥等)。我能够通过查看签名来了解并识别谁发布了这些工件。
我希望这可能有所帮助。
Regards,
Charlee Ch。