下文中,我们使用Sonatype Maven存储库。这对于我们的maven projetcs来说非常好用,但我们有一个遗留应用程序,它使用Ant + IVY进行依赖管理,现在需要来自Maven的dep。
我的IVY设置文件如下:
<ivysettings>
<property name="dsnexus-root" value="http://internal-url/" override="false"/>
<credentials host="hostname" username="username" passwd="XXXX"/>
<!-- ... -->
<resolvers>
<chain name="shared">
<url name="shared-default">
<!-- ... -->
</url>
<url name="dsnexus-public" m2compatible="true">
<artifact pattern="${dsnexus-root}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</url>
</chain>
</resolvers>
<modules>
<module organisation=".*" name=".*" resolver="shared"/>
</modules>
<!-- ... -->
</ivysettings>
但是当我尝试解决我的deps时,它没有从内部仓库找到任何东西
e.g。
module not found: xerces#xercesImpl;2.9.1
==== shared-default: tried
...
==== dsnexus-public: tried
-- artifact xerces#xercesImpl;2.9.1!xercesImpl.jar:
http://internal-url/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
当然,dep确实存在于该URL上。
我也试过
<ibiblio name="dsnexus-public"
root="${dsnexus-root}"
m2compatible="true"
namespace="maven2"/>
得到了相同的结果。
我的猜测是有一些关于我出错的凭据。
答案 0 :(得分:3)
您还应该使用您的凭据指定领域,如下所示:
<credentials host="hostname" realm="Sonatype Nexus Repository Manager" username="username" passwd="xxx"/>
答案 1 :(得分:2)
在这里,试试这个:
<ivysettings>
<settings defaultResolver="nexus"
checkUpToDate="true" />
<credentials host="localhost"
realm="Sonatype Nexus Repository Manager"
username="admin"
passwd="admin123"/>
<resolvers>
<ibiblio name="nexus" m2compatible="true"
root="http://localhost:8081/nexus/content/groups/public/"/>
<url name="releases" m2compatible="true">
<artifact pattern="http://localhost:8081/nexus/content/repositories/releases/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
<ivy pattern="http://localhost:8081/nexus/content/repositories/releases/[organization]/[module]/[revision]/ivy-[revision].xml"/>
</url>
</resolvers>
</ivysettings>
使用Nexus 1.7.1完美适合我。如果您有任何问题,请告诉我。
答案 2 :(得分:0)
在与nexus交谈时,我通常使用ibiblio解析器。
<ibiblio name="reponame" m2compatible="true" root="http://nexus-url/reponame"/>