35

プロジェクトの POM に保存されないように、SCM 資格情報を外部化する方法はありますか? 問題は、それらがプロジェクトの POM に含まれている場合、プロジェクトが展開されたときにすべての人に表示されることです。

4

4 に答える 4

62

<servers>一部の SCM プロバイダーでは、 のセクションで資格情報を指定できますsettings.xml<id>リポジトリのドメイン名を使用します。これは水銀で私にとってはうまくいきます。SubVersion も機能します。

たとえば、次のpom.xml内容が含まれているとします。

<scm>
  <connection>scm:hg:http://jukito.googlecode.com/hg/</connection>
  <developerConnection>scm:hg:https://jukito.googlecode.com/hg/</developerConnection>
  <url>http://code.google.com/p/jukito/source/browse/</url>
</scm>

次に、資格情報をsettings.xml次のように指定できます。

<server>
  <id>jukito.googlecode.com</id>
  <username>philippe.beaudoin</username>
  <password>1234567890ABC</password>
</server>
于 2011-01-25T08:50:23.400 に答える
24

この質問は古く、答えは受け入れられていると思いますが、完全を期すために、次の代替案を提供したいと思います。これは、場合によっては好ましい場合があります。

動機

同じサーバーが複数の目的で使用されることがあり、異なるユーザー資格情報が必要になります。たとえば、Nexus駆動のMavenリポジトリや、同じユーザーに対して異なるクレデンシャルを持つSVNサーバーをホストするために使用されます。このような場合、とは同じであるが、が異なる複数の<server>エントリが必要になります。ただし、これは実行可能ではありません。idusernamepassword

解決

Mavenリリースプラグインはフラグusernameをサポートしており、およびコマンドpasswordの一部として提供できます。およびの値は、それぞれのSVNクレデンシャルと一致する必要があります。release:preparerelease:performusernamepassword

mvn release:prepare -Dusername=[username] -Dpassword=[password] 
于 2012-03-06T12:56:57.850 に答える
5

これは、多くの SCM プロバイダーで実行できます。タグに基づく実装として Subversion を想定しています。

$user.home/.scm/svn-settings.xml (または [maven home]/conf/.scm/svn-settings.xml) で Subversion 設定を定義できますが、これは、これらが引き続きユーザーに表示されることを意味しますシステム)

そのファイルで、Subversion サーバーのユーザー名とパスワードを設定できます。ファイルの内容は次のようになります。

<svn-settings>
  <user>[svn user]</user>
  <password>[svn password]</password>
</svn-settings>

その構成ファイルで他のいくつかのプロパティを定義できます。詳細については、Subversion SCM ページの「プロバイダー構成」セクションを参照してください。

他の SCM プロバイダーにも同様のアプローチがあります。たとえば、CVS では、設定は同じ場所 (.scm フォルダー) の cvs-settings.xml に保存されます。詳細については、CVS SCM ページを参照してください。

于 2009-08-10T15:37:06.287 に答える
4

上記のソリューションを使用して、これを機能させることができました。つまり、新しいサーバー構成を settings.xml に追加し、ドメイン名を ID として指定します。

<server>
  <id>domain.name:port</id>
  <username>[username]</username>
  <password>[password]</password>
</server>

前の回答に加えて、URL でポートを指定している場合は、これも server.id に含める必要があります。私が見つけたもう 1 つの癖は、コマンド ライン呼び出しを妨げる可能性のある文字がパスワードに含まれている場合は、パスワードを引用符で囲む必要があることです。

$user.home/.scm/svn-settings.xm で以下を使用することはできません。無効なためです! 以下のような要素はありません<user>(ここで指定されているように)<password><svn-settings>

<svn-settings>
  <user>[svn user]</user>
  <password>[svn password]</password>
</svn-settings>
于 2013-01-31T13:31:11.417 に答える