2016-06-22 54 views
0

我有一個具有以下依賴關係樹的項目。排除深入嵌套依賴maven for sbt

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 

行家-cobuertura-pluging提供pomjar,但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中設置排除項目嗎?

回答