2015-04-22 202 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