【问题标题】:Overriding an individual Ivy dependency覆盖单个 Ivy 依赖项
【发布时间】:2012-08-15 21:10:27
【问题描述】:

应用程序 A 使用 log4net 版本 1.2.10.0 并使用我的 CI 流程构建,因此存储在我的 Ivy Shared 文件夹中。 (这里没有问题)

Application B 引用 Application A,同时引用更新版本的 log4net,即 1.2.11.0。由于 CI 进程将依赖项解析到应用程序 B 的二进制文件夹中,因此在尝试获取 log4net.dll 的 1.2.10.0 和 1.2.11.0 版本时会发生冲突。

有没有一种方法可以指示 Ivy 允许它在单个/每个依赖项级别覆盖依赖项以获得更新的版本,并且它不应该在此冲突到来时使构建失败?

或者,我是否必须使用 log4net 1.2.10.0 版本重新构建应用程序 A 并重新发布它,以便应用程序 B 的传递依赖关系不存在问题?

【问题讨论】:

    标签: log4net ivy dependency-management


    【解决方案1】:

    您遇到的问题是传递依赖冲突。应用程序 A 的一个传递依赖与应用程序 B 中的直接依赖冲突。 和 Maven 一样,在 Application B 中使用 exclude 标签:

    <dependencies>  
       <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf='..'> 
           <exclude name='jaas' /> 
           <exclude name='jacc' />
       </dependency>
    </dependencies>
    

    Ivy: how do I remove transitive dependencies?

    【讨论】:

      猜你喜欢
      • 2011-04-11
      • 2014-03-18
      • 2020-04-12
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2015-11-21
      • 1970-01-01
      相关资源
      最近更新 更多