Mavenのscmchangelog-プラグインで無視された資格情報
質問
私は scmchangelog・プラグインを構成する場合、実施例に記述されたように/チュートリアル、およびサイトの生成を実行し、私が設定したユーザ名とパスワードは無視されます。
ドキュメントには、SCMにアクセスするために使用されなければならないユーザー名とパスワードは、プラグイン構成で構成することができることを言います。これは、次のようになります:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>scmchangelog-maven-plugin</artifactId>
<version>1.3</version>
<configuration>
<grammar>REMY</grammar>
<connectionUrl>scm:svn:svn+ssh://repo.lan/repo/project/trunk</connectionUrl>
<username>user</username>
<password>password</password>
</configuration>
</plugin>
</plugins>
</reporting>
私はサイト世代(MVNサイト)を実行すると、コマンドライン上の出力は言う。
[INFO] Executing: /bin/sh -c cd /tmp && svn --username user --password '*****'
--non-interactive list --xml svn+ssh://repo.lan/repo/project/tags/
しかし、私はまだ、パスワードの入力を求めてるとSCMへのアクセスに使用するユーザーは、MVN命令を実行しているものです。
間違っている可能性がどのような任意のアイデア?
アップデート:
私は今のsvnコマンドラインクライアントに問題を突き止めます。
問題は、私は次の
のようなコマンドを実行したときにということであり、svn list --username foo --password bar --non-interactive svn+ssh://host/repo/project
コマンドラインツールは、与えられたオプションを無視しているようです。私はまだパスワードを疑問視していて、URLへのアクセスに使用するユーザーは、コマンドを実行し1、とされていないオプションで1セットです。
私は、ここでは、SVNのバージョン1.4.6を使用しています。
間違ってここに行くかもしれないものの任意のアイデア?
解決
これは既知のバグです。正しい動作は、SSHなどの外部認証メカニズムを使用して、代わりに黙ってそれらのオプションを無視するとき--username
と--password
のオプションがサポートされていないことを示すエラーを表示するようになります。
あなたの問題を解決するには、URLの一部として、あなたの「foo」でユーザ名を渡します:
svn+ssh://foo@host/repo/project
ので、パスワードプロンプトを避け、あなたの資格情報をキャッシュするためにのssh-agent のようなものを使用ます。
他のヒント
あなたは MavenのSCMプラグインするのscm:changelog
目標を意味しますか?この場合、あなたはSCMがあなたの資格情報を渡されたことを確認するには、2つの選択肢があります。
好ましいアプローチ
あなたはM2_HOME以下の設定ファイルを指定することを可能にするいくつかの SCMプロバイダー/ confに/ .scm、例えばSubversionのsvnの-settings.xmlのであり、CVSのは、CVS-settings.xmlのです。
あなたのSCMプロバイダーは、構成設定を定義する方法を定義する必要があります。 Subversionのために私は、このようなファイルで終わるます:
<svn-settings>
<user>[username]</user>
<password>[password]</password>
</svn-settings>
必要な場合は、ファイルへのコマンドラインパラメータを渡すことによって、別の場所でのSCMの設定ファイルを指定することができます:
-Dmaven.scm.svn.config_directory=your_configuration_directory
その他のアプローチ
他の(望ましくない)オプションでは、URLがユーザ名とパスワードが含まれているように、POMのscm
セクションを設定することです。この実装は、プロバイダ固有であるが、Subversionのために、この例とほぼ同様の形式である:
scm:svn:http://[user]:[password]@host/path
だから、POMであなたのSCMのセクションでは、このようになります
<scm>
<connection>scm:svn:http://[user]:[password]@host/path</connection>
<developerConnection>
scm:svn:http://[user]:[password]@host/path
</developerConnection>
<url>http://somerepository.com/viewsvn</url>
</scm>
これはあなたのSCMの資格情報がインストールさPOMで終わるように、あなたが本当に唯一の私の意見では、接続をテストするためにこれを使用する必要があり、明らかに望ましくありません。詳細については、 SCMのURLフォーマットのページや特定の詳細を参照してください< href = "http://maven.apache.org/scm/scms-overview.html" のrel = "nofollowをnoreferrer"> SCMプロバイダーの
「SVN」コマンドの使用をつかう別名がありますかどうかをチェックします。
宛先ホストがパスワードモードの真偽を許可する場合も確認してください。また、これらはSVN + SSHを妨げることができ、デスクトップはいくつかの便利な「キーリング剤」と浮気しないことを確認する価値があるかもしれません。