2011-11-15 6 views
2

ハドソンでパラメータ化されたビルドを設定しようとしました。これは、ビルドを手動でトリガするときに設定される文字列パラメータです。これはサンプルのリポジトリのURLです。
svn://xxx/java/common/tags/${revision}ハドソン・サブバージョン・プラグイン:パラメータ化されたビルドで認証情報が見つかりませんでした

私は$リビジョンでビルドを行うにしようとしたとき、私は1.0.0.0

error: failed to check out svn://xxx/java/common/tags/1.0.0.0 
org.tmatesoft.svn.core.SVNCancelException: svn: No credential to try. Authentication failed 
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) 
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32) 
    at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:219) 
    at org.tmatesoft.svn.core.internal.io.svn.sasl.SVNSaslAuthenticator.createSaslClient(SVNSaslAuthenticator.java:304) 
    at org.tmatesoft.svn.core.internal.io.svn.sasl.SVNSaslAuthenticator.authenticate(SVNSaslAuthenticator.java:91) 
    at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.authenticate(SVNConnection.java:173) 
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.authenticate(SVNRepositoryImpl.java:1265) 
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1243) 
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:168) 
    at org.tmatesoft.svn.core.wc.SVNBasicClient.getRevisionNumber(SVNBasicClient.java:482) 
    at org.tmatesoft.svn.core.wc.SVNBasicClient.getLocations(SVNBasicClient.java:873) 
    at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:534) 
    at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:901) 

=次の例外を得た私はすでに上記のリポジトリURLのユーザー名/パスワードを設定しています。 URLが動的に生成されるため、Subversionプラグインが資格情報を取得できなかったようです。静的URLを設定してそれに応じてユーザー名/パスワードを設定すると、プロジェクトをチェックアウトすることができます。どんな助けでも大歓迎です。どうも。

ハドソンのバージョン:2.1.0
のSubversionプラグインのバージョン:2.0.1

+0

パラメータ化されたビルドの意味を教えてください。私が新しいビルドジョブを実行し、 'このビルドはパラメータ化されました 'というチェックボックスを選択すると、いくつかのオプションしかありません。あなたはどちらを使っていますか? SubversionのURLで使用される文字列パラメータですか?この情報を質問に追加してください。 – mliebelt

+0

はい、私のURLのSubversionに使用される文字列のパラメータです。 – iamsan

答えて

0

私は私達のハドソンのインストールのいずれかにそれをテストしています。私は以下を行った:

  1. 新しいhudsonジョブを作成しました。
  2. SVN URLをAntプロジェクトにコピーし、最後のセグメントを `$ {project} 'に置き換えました。それがあった前

    https://our.svn.com/svn/trunk/public/develop/build/ant/ant-simple

    今では、次のとおりです。

    • タイプ:文字列パラメータ
    • 名:プロジェクト
    • https://our.svn.com/svn/trunk/public/develop/build/ant/${project}は、その後、私はビルドにパラメータを追加しました

    • デフォルト値:ant-simple
  3. ビルドのステップとして、私はターゲットをきれいにしてAntを定義しました。
  4. 設定ダイアログは、リポジトリにSVN URL(${project}あり)が存在せず、資格情報を更新するように指示しています。
  5. 私はUpdate credentialsをしません。

私は今、ビルドを開始し、それは(私はデフォルトを変更しない)パラメータを要求し、(メッセージpending - ???で)いくつかの秒間ハングした後、ビルドが正しいん。これがなぜ機能しているのか(私は疑うが、あなたがそれを証明できると思う)、ハドソンはできるだけ使用している資格情報用のキャッシュを持っているということだ。

パラメータなしで1つのビルドジョブを開始し、URLを.../tags/1.0.0.0に設定して現在のビルドをコピーして一度だけビルドしてください。そこに正しい資格情報を入力する必要があります。パラメータ化されたビルドが動作するはずです。

1

あなたの迅速な対応のために、どういうわけか私は回避策を見つける。 これはhudsonプロジェクトフォルダの下にあるsubversion.credentialsです。

URLを資格情報にマップするハッシュテーブルがあることがわかります。 3番目のエントリを見てください。実行時にパラメータ$ revisionが解決されると、プラグインは一致するキーを持つ資格証明を見つけることができません。 絶望のうちに、「はい」フラグをオンにして「グローバル資格情報を上書きする」と同じ資格情報を追加しました。これが下の4番目のエントリです。それはトリックを行うようだ。グローバル認証はホスト名のみに基づいて格納されていると思いますか?

<?xml version='1.0' encoding='UTF-8'?> 
<hudson.scm.PerJobCredentialStore> 
    <credentials class="hashtable"> 
    <entry> 
     <string>svn://xxx/java/common</string> 
     <hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential> 
     <userName>chiangs</userName> 
     <password>MWNoaWFuZ3MyMw==</password> 
     </hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential> 
    </entry> 
    <entry> 
     <string>svn://xxx/java/common/trunk</string> 
     <hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential> 
     <userName>chiangs</userName> 
     <password>MWNoaWFuZ3MyMw==</password> 
     </hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential> 
    </entry> 
    <entry> 
     <string>svn://xxx/java/common/tags/${revision}</string> 
     <hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential> 
     <userName>chiangs</userName> 
     <password>MWNoaWFuZ3MyMw==</password> 
     </hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential> 
    </entry> 
    <entry> 
     <string>&lt;svn://xxx:3690&gt; 01f58c58-b008-11dd-a3df-af2b63c5a78d</string> 
     <hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential reference="../../entry[2]/hudson.scm.SubversionSCM_-DescriptorImpl_-PasswordCredential"/> 
    </entry> 
    </credentials> 
</hudson.scm.PerJobCredentialStore> 
+0

+1 - それを理解するにはしばらく時間がかかりました – bobah

関連する問題