我有一个带有以下依赖树的项目。
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:plugin
maven-cobuertura-pluging提供了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
中设置排除项?