首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Ivy依赖项进行排序

对Ivy依赖项进行排序
EN

Stack Overflow用户
提问于 2013-09-04 21:25:27
回答 1查看 481关注 0票数 1

我正在努力弄清楚常春藤大学的排外行为。

在下面的常春藤文件中,为什么将commons-logging放在log4j之前会从log4j中引入javax.activationjavax.mail,而将其放在后面则不会。

代码语言:javascript
复制
<ivy-module version="2.0">
    <info organisation="test" module="test" />

    <configurations defaultconfmapping="default->runtime(*)" />

    <dependencies>
        <dependency org="log4j" name="log4j" rev="1.2.15">
            <exclude org="javax.activation" />
            <exclude org="javax.mail" />
        </dependency>
        <dependency org="commons-logging" name="commons-logging" rev="1.1" />

        <exclude org="com.sun.jdmk" />
        <exclude org="com.sun.jmx" />
        <exclude org="javax.jms" />
    </dependencies>
</ivy-module>
EN

回答 1

Stack Overflow用户

发布于 2013-09-05 04:13:49

激活和邮件jars是commons日志记录的依赖项,但是您已经将它们排除在log4j依赖项之外……

当您只使用单个配置时,这将向ivy发送一条混合消息,是否应该排除它们?下面的内容将更加明确:

代码语言:javascript
复制
<dependencies>
    <dependency org="log4j" name="log4j" rev="1.2.15"/>
    <dependency org="commons-logging" name="commons-logging" rev="1.1" />

    <exclude org="javax.activation" />
    <exclude org="javax.mail" />    
    <exclude org="com.sun.jdmk" />
    <exclude org="com.sun.jmx" />
    <exclude org="javax.jms" />
</dependencies>

如果排除是全局设置的,就不会那么令人困惑。

如果你想保持独立的依赖关系解析,那么你需要设置多个配置(可以把它们看作是依赖关系集):

代码语言:javascript
复制
<ivy-module version="2.0">
    <info organisation="test" module="test" />

    <configurations>
       <conf name="log4j_deps" description="log4j dependencies"/>
       <conf name="commons_deps" description="commons-logging dependencies"/>
    </configurations>

    <dependencies>

        <dependency org="log4j" name="log4j" rev="1.2.15" conf="log4j_deps->runtime">
            <exclude org="javax.activation" />
            <exclude org="javax.mail" />
        </dependency>

        <dependency org="commons-logging" name="commons-logging" rev="1.1" conf="commons_deps->runtime"/>

        <exclude org="com.sun.jdmk" />
        <exclude org="com.sun.jmx" />
        <exclude org="javax.jms" />
    </dependencies>
</ivy-module>

切换依赖关系标记现在将不起作用,因为依赖关系解析是显式的。

  • Log4j及其依赖项与放置在log4j_deps configuration.

上的log4j_deps log4j_deps依赖项相关联

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18615134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档