2011-03-11 157 views
5

如果我有一些libs在其他版本中具有其他依赖项,例如:commons-logging-1.0.4.jar(省略与1.1.1冲突)和commons-logging-1.1.1。罐。maven上的依赖冲突

对此的最佳做法是什么,通知排除相关依赖关系中的冲突(通过标记),或者什么都不做,因为lib被省略了?是否有任何问题没有指定排除POM中的依赖关系?

的例子,解释如何在POM解决这个问题,I'm把下面的指令来解决有关版本内部冲突:

<dependency> 
     <groupId>struts</groupId> 
     <artifactId>struts</artifactId> 
     <version>1.2.8</version> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
</dependencies> 
+0

我不明白你的问题,所以你可以提供以下信息:想要使用的Maven版本(2.2.x与3.0.x)。我认为答案取决于不同的版本。也许这个问题根本无法解答,因为问题存在于不同的版本中,如果它们兼容或不适合您的使用。 – mliebelt 2011-03-13 13:18:13

+0

我正在使用maven 3.0,我的项目是使用ANT,我正在做maven的重构,我需要一些其他内部项目的libs,它们有更多的依赖库。 – ricardo 2011-03-14 14:23:31

+0

当我想象“依赖层次结构”时,我注意到上面这个例子的一些不同版本的相同库,Maven将旧版本设置为“与[版本]冲突时省略”。因此,我想知道做什么是正确的。 – ricardo 2011-03-14 14:25:02

回答

5

你需要在你的[家长]配置dependencyManagement节POM。这将强制作为传递依赖关系的工件作为指定版本。