向Ivy添加Archiva仓库

4

我正在尝试将archiva-repo添加到ivy中,但它无法工作。

以下是使用的文件:

ivy.xml

<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="in.ex" module="ivy-example" status="integration">
</info>
<dependencies>
    <dependency org="commons-lang" name="commons-lang" rev="2.6" />
</dependencies>
</ivy-module>

ivysettings.xml

<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
<settings defaultResolver="archiva" />
<credentials host="http://myarchiva/archiva/" realm="Apache Archiva"
    username="user" passwd="pwd" />
<property name="archiva-internal"
    value="http://myarchiva/archiva/repository/internal" />
<resolvers>
    <ibiblio name="archiva" m2compatible="true" root="${archiva-internal}" />
</resolvers>
</ivysettings>

build.xml

<project name="ivy example" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">

<target name="resolve" description="resolve dependencies with ivy">
    <ivy:settings file="ivysettings.xml" />
    <ivy:retrieve />
</target>

</project>

当我运行 Ant 任务时,会显示以下错误消息:
module not found: commons-lang#commons-lang;2.6
==== archiva: tried
http://myarchiva/archiva/repository/internal/commons-lang/commons-lang/2.6/commons-lang-2.6.pom
-- artifact commons-lang#commons-lang;2.6!commons-lang.jar:
http://myarchiva/archiva/repository/internal/commons-lang/commons-lang/2.6/commons-lang-2.6.jar

看起来 commons-lang 没有被找到,但它仍然存在。当我在浏览器中尝试该网址时,我可以获取到 jar 包。

请问有人能帮助我吗?谢谢!


2
你可以在Ant命令行上使用“-d”来获取更多关于Ivy的信息。不过可能并没有什么有用的信息。 - Ed Staub
Archiva日志中有任何错误吗? - Olivier Lamy
2个回答

0
当我运行 ant -d 时,我看到了一个错误。
[ivy:retrieve] CLIENT ERROR: Unauthorized url=http://

我花了很长时间才弄清楚为什么我无法从我的本地Archiva获取构件。

-1

你唯一的解决方案是使用你的内部仓库,但是你的仓库中没有commons-lang-2.6.jar。最简单的解决方法是在你自己的解析器后面添加默认的Maven仓库解析器,如下:

        <ibiblio name="central" m2compatible="true" />

或者您可以下载并手动添加文件。

更新: 此外,realm的值应该是以下内容,并且区分大小写。

    "Repository Archiva Managed internal Repository"

我已经按照你的解决方案进行了操作,一切似乎都很正常,但是当我构建时,Ant会说它找到了每个构件,即使我的Archiva仓库中没有某些构件,你知道为什么吗? - mautrok
问题说:“当我在浏览器中尝试该URL时,我得到了jar包。”,因此很明显他们的repo中确实有commons-lang-2.6.jar。 - mjaggard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接