我有一个具有以下依赖关系树的项目。
my:project:jar:1.0
+- commons-configuration:commons-configuration:jar:1.1:compile
| +- commons-collections:commons-collections:jar:3.0:compile
| +- dom4j:dom4j:jar:1.4:compile
| | +- jaxen:jaxen:jar:1.0-FCS:compile
| | | +- maven-plugins:maven-cobertura-plugin:1.3:pluginmaven-cobuertura-jar提供了一个pom和一个jar,但是jaxen声明了一个plugin类型的依赖项。这似乎是maven可以接受的,但是我们构建的后面部分使用sbt作为它的构建工具。Sbt抱怨它无法解决依赖关系:
::::::::::::::::::::::::::::::::::::::::::::::
:: FAILED DOWNLOADS ::
:: ^ see resolution messages for details ^ ::
::::::::::::::::::::::::::::::::::::::::::::::
maven-plugins#maven-cobertura-plugin;1.3!maven-cobertura-plugin.plugin我尝试排除顶级pom中的依赖关系:
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<!-- Exclude dependencies that are not needed for building and are misconfigured, causing errors in sbt -->
<exclusions>
<exclusion>
<artifactId>maven-cobertua-plugin</artifactId>
<groupId>maven-plugins</groupId>
</exclusion>
</exclusions>
</dependency>如果我运行mvn dependency:tree,则不再列出cobertura。然而,sbt仍然发现了这种依赖,并对此提出了抱怨。
我删除了~/..ivy/cache/my/project,所以对旧pom的任何缓存引用都应该消失了。
我也尝试过运行sbt update,但由于缺少依赖项而无法执行。
sbt是否应该观察maven排除?或者,我还需要在build.sbt中设置排除项吗?
发布于 2016-08-22 20:35:07
升级到sbt 0.13.11可能会有所帮助。请参阅https://github.com/sbt/sbt/issues/2109
https://stackoverflow.com/questions/37973185
复制相似问题