常春藤冲突解决:两个库需要不同版本的另一个库

时间:2014-04-17 14:07:43

标签: java ivy

我在同一个项目中使用json-schema-validator和guava。当我尝试更新任何一个时,我的findbugs会发生冲突,因此遗漏了一个lib。

工作版本是:

  • json-schema-validator 2.0.0
  • guava 13.0.1

两者都依赖于findbugs 1.3.9

我想使用的版本:

  • json-schema-validator 2.2.1
  • guava 16.0.1

这里json-schema-validator需要findbugs(jsr305)2.0.1和guava需要findbugs 1.3.9。有没有解决这个问题的方法?我的意思是我可以在我的项目中使用json-schema-validator版本2.2.1和guava 16.0.1。

示例文件:

的build.xml

<project name="example" default="download"
         xmlns:ivy="antlib:org.apache.ivy.ant">
  <target name="download" description="resolve dependencies with ivy">
    <ivy:resolve />
    <ivy:retrieve sync="true" type="jar"/>
  </target>
</project>

ivy.xml,正在工作

<?xml version="1.0" encoding="ISO-8859-1"?>
 <ivy-module version="2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info organisation="example" module="example" status="integration">
    </info>
    <dependencies>
         <dependency org="com.github.fge" name="json-schema-validator" rev="2.0.0" />
         <dependency org="com.google.guava" name="guava" rev="13.0.1" />
    </dependencies>
 </ivy-module>

ivy.xml,无法正常工作

<?xml version="1.0" encoding="ISO-8859-1"?>
 <ivy-module version="2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info organisation="example" module="example" status="integration">
    </info>
    <dependencies>
         <dependency org="com.github.fge" name="json-schema-validator" rev="2.2.1" />
         <dependency org="com.google.guava" name="guava" rev="16.0.1" />
    </dependencies>
 </ivy-module>
驱逐通知:

[ivy:resolve]   :: evicted modules:
[ivy:resolve]   com.google.code.findbugs#jsr305;1.3.9 by [com.google.code.findbugs#jsr305;2.0.1] in [default]

1 个答案:

答案 0 :(得分:3)

@Julien感谢提示,根据示例,我将检索行更改为

<ivy:retrieve pattern="lib/[artifact]-[revision].[ext]" sync="true"/>

现在有效。