具有依赖关系的依赖管理导入

时间:2017-08-29 13:13:32

标签: maven

我有以下3个maven模块:

  • service
  • client
  • interface

此外,我还有以下两个maven工件:

  • 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-dependencies添加到general-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)?

1 个答案:

答案 0 :(得分:2)

如果在父pom中声明依赖项,所有子模块将继承这些依赖项。

如果只想在子模块的某些中使用依赖项,则需要将它们传输到子模块,或者需要将它们包装到配置文件中并仅在某些子项中激活此配置文件模块。