プロジェクトのPOMに格納されないようにSCM資格情報を外部化する方法はありますか?問題は、それらがプロジェクトのPOMに含まれている場合、プロジェクトがデプロイされるときにすべてに表示されます。
これは、多くの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ページ を参照してください。
一部のSCMプロバイダーでは、<servers>
のsettings.xml
セクションで資格情報を指定できます。 <id>
として、リポジトリのドメイン名を使用します。これは私にとってMercurialで機能します。 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>
この質問は古く、回答は受け入れられることを理解していますが、完全を期すために、次の代替案を提供したいと考えています。
そのため、同じサーバーがいくつかの目的で使用され、異なるユーザー資格情報が必要になる場合があります。たとえば、同じユーザーに対して異なる資格情報を持つSVNサーバーだけでなく、Nexus駆動のMavenリポジトリーをホストするために使用されます。このような場合、id
とusername
は同じでpassword
が異なる複数の<server>
エントリが必要になります。ただし、これは実行可能ではありません。
Mavenリリースプラグインは、release:prepare
およびrelease:perform
コマンドの一部として提供できるフラグusername
およびpassword
をサポートしています。 username
およびpassword
の値は、それぞれのSVN資格情報と一致する必要があります。
mvn release:prepare -Dusername=[username] -Dpassword=[password]
上記のソリューションを使用してこれを機能させることができました。つまり、新しいサーバー構成を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>
などの要素はありません(指定どおり here )
<svn-settings>
<user>[svn user]</user>
<password>[svn password]</password>
</svn-settings>