常见的IT问题:Ivy - 添加仓库,从特定仓库获取资源

6

我对IVY还不是很熟悉。我想要做以下事情:

我想要将http://mvnrepository.com添加到存储库列表中。不确定是否需要根据mvnrepository中的定义来定义正确的模式。

同时,我想要从该网站上下载特定的库,而不是从其他存储库中下载。

这是我的ivysettings文件:

<ivysettings>
    <properties file="build.properties" />
    <settings defaultResolver="local-chain"/>
    <resolvers>
        <ibiblio name="ibiblio-maven2" m2compatible="true"/>
        <ibiblio name="java-net-maven2" root="http://download.java.net/maven/2/" m2compatible="true" />
        <ibiblio name="maven" root="http://mvnrepository.com/artifact/" m2compatible="true" />
        <filesystem name="project-built" checksums="">
            <ivy pattern="${repository.dir}/[module]-ivy.xml" />
            <artifact pattern="${repository.dir}/[artifact].[ext]" />
        </filesystem>
        <chain name="local-chain">
            <resolver ref="maven"/>
            <resolver ref="ibiblio-maven2"/>
            <resolver ref="java-net-maven2"/>
            <resolver ref="project-built"/>
        </chain>
    </resolvers>

这是我的ivy文件:
<ivy-module version="1.0">
<info organisation="project" module="com.project.test.framework" />
<dependencies>
    <dependency org="commons-collections" name="commons-collections" rev="3.2"/>
    <dependency org="commons-configuration" name="commons-configuration" rev="1.6"/>
    <dependency org="commons-lang" name="commons-lang" rev="2.6"/>
    <dependency org="commons-logging" name="commons-logging" rev="1.1"/>
    <dependency org="junit" name="junit" rev="4.8"/>
    <dependency org="org.seleniumhq.selenium" name="selenium" rev="2.0rc2"/>    
    <dependency org="net.sf.json-lib" name="json-lib" rev="2.4" conf="default->compile"/>   
    <dependency org="com.sun.jersey" name="jersey-core" rev="1.8" conf="default->compile"/> 
    <dependency org="com.sun.jersey" name="jersey-client" rev="1.8" conf="default->compile"/>   
</dependencies>

基本上,我希望从MAVEN mvnrepository下载JSON数据。我认为将maven排在第一位时它会从那里获取数据,就这么简单。但好像并没有使用mvnrep。
我认为它的配置方式可能有问题,但我不确定正确的方法。
我阅读了很多关于它的文章,但仍然不知道解决方案。
感谢任何帮助!
2个回答

9

如果要强制指定解析器来处理模块,请在ivysettings.xml中使用以下代码:

<ivysettings>
    <properties file="build.properties" />
    <settings defaultResolver="local-chain"/>
    <resolvers>
        <ibiblio name="ibiblio-maven2" m2compatible="true"/>
        <ibiblio name="java-net-maven2" root="http://download.java.net/maven/2/" m2compatible="true" />
        <ibiblio name="maven" root="http://mvnrepository.com/artifact/" m2compatible="true" />
        <filesystem name="project-built" checksums="">
            <ivy pattern="${repository.dir}/[module]-ivy.xml" />
            <artifact pattern="${repository.dir}/[artifact].[ext]" />
        </filesystem>
        <chain name="local-chain">
            <resolver ref="maven"/>
            <resolver ref="ibiblio-maven2"/>
            <resolver ref="java-net-maven2"/>
            <resolver ref="project-built"/>
        </chain>
    </resolvers>
    <modules>
      <module organisation="json" resolver="maven"/>
    </modules>
</ivysettings>

查看文档以获取详细信息。


我在哪里配置模块? - Hannibal
啊,好的。谢谢。现在我看到它尝试查找模块的方式有些问题了... 它寻找的是:http://mvnrepository.com/net/sf/json-lib/json-lib/2.4/json-lib-2.4.pom 但那不是它所在的位置。:) 终于更接近一步了.. 谢谢! - Hannibal
你不会相信这个。我设置了正确的构件名称,但它仍然使用ibiblio-maven2.. 当它错误时,它确实使用了maven,但一旦我修复它,它就不再使用了。:D - Hannibal

0

也许你的链中缺少了returnFirst="true"属性。


我应该在哪里添加returnFirst="true"? - Hannibal

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