从Ivy到Archiva部署文物

时间:2009-11-05 08:23:20

标签: ivy archiva

是否有人测试过如何在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拥有“Repository Manager”Archiva角色,但我收到了未经授权的消息。 实际上,凭证似乎没有考虑在内,因为如果我将“Repository Manager”设置为访客Archiva用户(未经身份验证的用户),则会部署工件。

Archiva使用webdav协议。你有使用Ivy webdav解析器的实验证书吗? 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

凭证元素的领域属性似乎区分大小写,因此您可能想尝试使用realm =“Repository Archiva Managed internal Repository”(请注意'内部'中的小写'i'!)

答案 1 :(得分:2)

这也遇到了很多麻烦。这是解决方案:

为Ant启用调试日志记录 在异常之前查找这样的消息:

  

[ivy:publish]尝试获取凭据: Repository Archiva托管内部Repository@domain.com

您需要在ivysettings.xml文件中添加符合其所需内容的凭据

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

Realm是“Repository Archiva Managed internal Repository”,主机是“domain.com”,取而代之的是调试输出中显示的任何值,以及正确的用户名和密码。

我希望这有助于某人!