2

例/チュートリアルに書かれているようにscmchangelog-pluginを構成し、サイト生成を実行すると、設定したユーザー名とパスワードが無視されます。

ドキュメントには、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にアクセスするために使用されるユーザーは、コマンドを実行するユーザーであり、オプションで設定されたユーザーではありません.

ここでは svn バージョン 1.4.6 を使用しています。

ここで何がうまくいかないのでしょうか?

4

3 に答える 3

3

これは既知のバグです。--username正しい動作は、SSH などの外部認証メカニズムを使用する場合、これらのオプションを黙って無視するのではなく、--passwordオプションがサポートされていないことを示すエラーを表示することです。

問題を解決するには、「foo」ユーザー名を URL の一部として渡します。

svn+ssh://foo@host/repo/project

ssh-agentなどを使用して資格情報をキャッシュし、パスワード プロンプトを回避します。

于 2009-10-01T13:07:11.970 に答える
3

Maven SCM プラグインscm:changelog目標ですか? この場合、SCM に資格情報が渡されるようにするための 2 つの選択肢があります。

好ましいアプローチ

一部のSCM プロバイダーでは、M2_HOME/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

その他のアプローチ

もう 1 つの (望ましくない) オプションはscm、URL にユーザー名とパスワードが含まれるように POM のセクションを構成することです。これの実装はプロバイダー固有ですが、一般的に 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 形式のページと特定のSCM プロバイダーの詳細を参照してください。

于 2009-09-30T11:10:58.123 に答える
1

「svn」コマンドの使用を妨害するエイリアスがあるかどうかを確認してください。

また、宛先ホストでパスワード モード認証が許可されているかどうかも確認してください。デスクトップがいくつかの便利な「キーリング エージェント」でだまされていないことを確認することも価値があるかもしれません。それらは svn+ssh を妨害する可能性があります。

于 2009-10-01T12:37:36.507 に答える