2017-08-29 79 views
-1

我有以下3个行家模块:Dependencymanagement进口具有依赖性

  • service
  • client
  • interface

此外,我也有以下两个行家工件:

  • general-parent
  • general-parent-dependency

3个模块中的所有从general-parent继承,像这样:

<parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>general-parent</artifactId> 
    <version>1</version> 
</parent>` 

general-parent-dependencies同时包含<dependencies/><dependencyManagement/>部分。

3个模块应全部导入<dependencyManagement/>,但只有service模块应导入<dependencies/>

我想加入的general-parent-dependenciesgeneral-parent这样的:

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>com.mycompany.app</groupId> 
     <artifactId>general-parent-dependencies</artifactId> 
     <version>1</version> 
     <scope>import</scope> 
     <type>pom</type> 
    </dependency> 
    <dependency> 
     <groupId>com.mycompany.app</groupId> 
     <artifactId>general-parent-dependencies</artifactId> 
     <version>1</version>  
     <type>pom</type> 
    </dependency> 
    </dependencies>` 
</dependencyManagement> 

所以,从client可以参考我general-parent-dependencies没有版本和所有模块将有<dependencyManagement/>general-parent继承。

但它不起作用。是否不可能像我一样在<dependencyManagement/>中列出相同的工件作为依赖项 - 第一次使用import作用域,第二次使用默认作用域(compile)?

+0

在父级中只有dependencyManagement但在父级没有'dependencies'的最佳实践。每个孩子定义它的依赖关系......使之清楚等等...... – khmarbaise

回答

2

如果您在父pom中声明了依赖关系,则全部子模块将继承这些依赖关系。

如果您只想在子模块的一些的依赖关系,您可能需要将它们转移到子模块或需要将它们包装成一个配置文件,只在某些子模块激活此配置文件。