0

当我调用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:performMaven 最终调用:

cmd.exe /X /C mvn deploy --no-plugin-updates -Psonatype-oss-release -P windows-i386-msvc-debug,always-active -f pom.xml"

如您所见,环境变量和-Darguments命令行参数都没有传递给deploy目标。有任何想法吗?

4

2 回答 2

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的属性(不要共享秘密,例如用户/密码/私钥等)。我想通过查看签名来了解和识别谁发布了这些工件。

我希望这可能会有所帮助。

问候,

查理·Ch。

于 2013-03-04T02:48:16.023 回答
0

事实证明这是由 Sonatype 错误引起的:https ://issues.sonatype.org/browse/CENTRALSRV-35

于 2013-07-15T07:10:50.867 回答