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常にシステム プロパティです。

環境変数を使用する場合は、代わりに OS 構成を使用して構成してください。システム プロパティを使用する場合は、-D を使用してください。この2種類を混ぜて使用しないでください。

私見、アーティファクトにも署名するというあなたの言及としてシナリオがあります。以下の例のように、ビルドセクションで明示的に「 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 に答える