2013-03-03 43 views
0

當我在我的項目上調用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目標。有任何想法嗎?

回答

0

您已配置爲-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。

相關問題