【问题标题】:Ivy - Add repository, get from specific repositoryIvy - 添加存储库,从特定存储库获取
【发布时间】:2011-10-19 18:37:17
【问题描述】:

我对 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-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。

我确实认为它的配置方式有误。但我不确定如何正确配置。

我确实阅读了很多关于它的帖子,但我仍然觉得我不知道解决方案。

感谢您的任何帮助!

【问题讨论】:

    标签: maven ivy


    【解决方案1】:

    要强制 module 使用特定的解析器,请在 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>
    

    详情请参阅documentation

    【讨论】:

    • 在哪里配置模块?
    • 啊,不错。谢谢。现在我发现它尝试查找模块的方式有问题......它寻找:mvnrepository.com/net/sf/json-lib/json-lib/2.4/json-lib-2.4.pom,但这不是它所在的位置。 :) 终于更近了一步.. 谢谢!
    • 你不会相信的。我为工件设置了正确的名称,它仍然使用 ibiblio-maven2.. 当它出错时它确实使用了 maven,但是一旦我修复它,它就不再使用它了。 :D
    【解决方案2】:

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

    【讨论】:

    • 在什么中添加 returnFirst="true?"
    猜你喜欢
    • 2013-03-09
    • 2018-06-26
    • 2015-02-04
    • 2012-09-13
    • 2017-09-22
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多