2015-04-22 199 views
0

我有一個多pom項目,父pom導入一個外部模塊。這種外部模塊使用某些撒克遜班,我導入它是這樣:Maven依賴關係管理問題

 <dependency> 
      <groupId>org.test</groupId> 
      <artifactId>test-framework</artifactId> 
      <version>1.0-SNAPSHOT</version> 
     </dependency> 

在孩子POM,我們導入它是這樣:

<dependency> 
     <groupId>org.test</groupId> 
     <artifactId>test-framework</artifactId> 
     <scope>provided</scope> 
    </dependency> 

我的印象是,如果您導入它作爲例如在父pom中,將導入外部模塊的所有傳遞依賴項。當我建立我的項目時,薩克森班級缺失,我能讓他們出現的唯一方法就是明確地將他們拉下來。這並不能解決傳遞性依賴解決的問題。我是否會明確拉下導入該外部模塊的任何項目中的所有傳遞依賴項?

回答

0

您是否嘗試過更改依賴項的範圍?

<dependency> 
    <groupId>org.test</groupId> 
    <artifactId>test-framework</artifactId> 
    <scope>compile</scope> 
</dependency> 

這應該做的工作。

閱讀來自這裏的依賴範圍:

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

+0

這是默認的範圍。如果沒有提供,如上面。 – user898465

+0

正確,編譯是默認範圍。 但您選擇'provided'作爲您的示波器。將其替換爲編譯或刪除它。 – AlexanderW