【问题标题】:How do I include an Ivy Dependency in subversion repo如何在 subversion repo 中包含 Ivy 依赖项
【发布时间】:2012-09-13 00:21:21
【问题描述】:

所以,由于我无法通过包含来自外部源的所有内容来找到解决依赖问题的方法,因此我求助于 Eclipse/IvyDE 进行 ant/Ivy 集成。

话虽如此,我通常会包含这样的库:

<dependency org="org.jsoup" name="jsoup" rev="1.6.3"/>

但是,如果我想查看我们自己的 Intranet 中的内容怎么办?

例如,如果保存 jar 的文件夹是这样的:

https://prdsvn01.company.intra.net/repo/libName/

我想将 lib.jar 包含到我的文件夹中。

在这个 Eclipse 实现中,我相对无法找到 ivysettings.xml,我也不相信如果可以的话,我能把它弄好。

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: java eclipse apache ivy ivyde


    【解决方案1】:

    以下常春藤设置文件:

    <ivysettings>
        <settings defaultResolver="central"/>
    
        <resolvers>
            <ibiblio name="central" m2compatible="true"/>
    
            <url name="my-repo">
                <artifact pattern="http://myserver/myrepo/[organisation]/[artifact]/[revision]/[artifact].[ext]"/>
            </url>
        </resolvers>
    
        <modules>
            <module organisation="org.mycompany" resolver="my-repo"/>
        </modules>
    </ivysettings>
    

    默认配置为从 Maven Central 检索工件,并从 HTTP 服务器检索本地工件。

    更新

    ivy.xml

    ivy 文件中没有什么特别之处。只需声明依赖项以及将它们关联到哪个配置:

    <configurations>
        <conf name="compile" description="Required to compile application"/>
    </configurations>
    
    <dependencies>
        <!-- compile dependencies -->
        <dependency org="org.slf4j" name="slf4j-api" rev="1.6.4" conf="compile->default"/>
        <dependency org="org.mycompany" name="my-module" rev="1.0" conf="compile->default"/>
    
    </dependencies>
    

    注意:

    • 使用配置是 ivy 的最佳实践。

    build.xml

    <target name="resolve" dependencies="Resolve build dependencies">
        <ivy:resolve/>
    
        <ivy:report todir='build/reports' graph='false' xml='false'/>
    
        <ivy:cachepath pathid="compile.path" conf="compile"/>
        ..  
    </target>
    

    注意事项:

    • ivycachepath 任务将 ivy 配置转换为填充的 ANT 类路径。非常有用。
    • ivy 报告任务告诉您类路径中的 jars

    Ivy 解析构建输出

    所有的魔法都在设置文件中。运行构建会产生以下结果:

    [ivy:resolve]   found org.slf4j#slf4j-api;1.6.4 in central
    [ivy:resolve]   found org.mycompany#my-module;1.0 in my-repo
    ..
    [ivy:resolve] downloading http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar ...
    ..
    [ivy:resolve] downloading http://myserver/myrepo/org.mycompany/my-module/1.0/my-module.jar ...
    

    注意事项:

    • my-repo 解析器用于具有“org.mycompany” groupId 的模块。
    • 其他所有内容均来自默认解析器 Maven Central。

    【讨论】:

    • 您能否在 ivy.xml 中添加一个快速的本地依赖项,以向我展示如何区分两者的区别?
    猜你喜欢
    • 2014-04-04
    • 2013-06-30
    • 2017-10-09
    • 2011-08-04
    • 2019-02-05
    • 2018-03-02
    • 2019-09-06
    • 2014-03-24
    • 1970-01-01
    相关资源
    最近更新 更多