3

セキュリティが有効になっているArchiva内にアーティファクトをデプロイする方法をテストした人はいますか?私は次の構成を持っています

私のivysettings.xml

<ivysettings>
  <settings defaultResolver="archiva"/>
  <resolvers>
    <ibiblio name="archiva" 
             m2compatible="true" 
             root="http://localhost:8080/archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
  </resolvers>
</ivysettings>

私のbuild.xml

<target name="ivy-init">
  <ivy:settings file="${ivy.settings.dir}/ivysettings.xml"  refid="ivy.classpath">
    <credentials host="localhost" 
         realm="Repository Archiva Managed Internal Repository"
                 username="deploy_user" passwd="deploy_pwd" />
  </ivy:settings>             
</target>

<target name="deploy2Archiva" 
         depends="jar,local-maven-version">

   <ivy:makepom ivyfile="${ivy.file}"
         pomfile="dist/demo-core.pom">
       <mapping conf="compile" scope="compile"/>
       <mapping conf="test" scope="test"/>
   </ivy:makepom>


   <ivy:publish 
    resolver="public"
    pubrevision="${version}"
    overwrite="true"    
    pubdate="${now}"
    status="release"
    forcedeliver="true"
    artifactspattern="${dist.dir}/[artifact].[ext]"/>

</target>

Archiva deploy_userには「リポジトリマネージャー」Archivaの役割がありますが、許可されていないメッセージが表示されます。実際、「リポジトリマネージャ」をゲストArchivaユーザー(認証されていないユーザー)に設定すると、アーティファクトがデプロイされるため、資格情報が考慮されていないようです。

Archivaはプロトコルwebdavを使用します。Ivy webdavリゾルバーで実験されたクレデンシャルを取得しましたか?これについて何か考えはありますか?

4

2 に答える 2

2

これにもかなり悩まされました。解決策は次のとおりです。

Ant のデバッグ ログをオンにします。例外の直前に次のようなメッセージを探します。

[ivy:publish] 次の認証情報を取得してみてください:リポジトリ Archiva 管理された内部 Repository@domain.com

探しているものと一致する資格情報を ivysettings.xml ファイルに追加する必要があります。

<credentials
      host="domain.com"
      realm="Repository Archiva Managed internal Repository"
      username="username"
      passwd="password" />

レルムは「Repository Archiva Managed internal Repository」であり、ホストは「domain.com」であり、デバッグ出力に表示される値、および正しいユーザー名とパスワードに置き換えられます。

これが誰かに役立つことを願っています!

于 2011-06-06T15:44:57.503 に答える
2

credentials 要素の realm 属性は大文字と小文字が区別されるようですので、 realm="Repository Archiva Managed internal Repository" を使用してみてください (「internal」の小文字の「i」に注意してください!)

于 2009-12-08T10:57:33.940 に答える