Maven:在每个项目中重用POM文件

Zom*_*ies 3 java maven-2 maven

我的目标实际上非常简单,但由于有多种(并且看似复杂的方法)我想知道我需要做什么...所以我需要将某些运行时库(特别是ADF库)添加到每个项目.这个父pom文件中只包含JAR依赖项.如何从子pom文件中使用此pom文件?

Pas*_*ent 8

我不认为使用继承是一个很好的解决方案.即使每个项目都使用ADF工件,您也不希望所有poms都获得这些依赖关系,因此在公司父pom中声明它们并不是一个真正的选择.

因此,我的建议是创建一个带有pom打包的项目,将ADF依赖项组合在一起:

<project>
  <groupId>com.mycompany</groupId>
  <artifactId>adf-deps</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>
  <dependencies>
    <dependency>
      <groupId>some.groupId</groupId>
      <artifactId>adf-artifact-1</artifactId>
      <version>${jdev.version}</version>
    </dependency>
    ...
    <dependency>
      <groupId>some.groupId</groupId>
      <artifactId>adf-artifact-n</artifactId>
      <version>${jdev.version}</version>
    </dependency>
  </dependencies>
  <properties>
    <jdev.version>10.1.3</jdev.version>
  </properties>
</project>
Run Code Online (Sandbox Code Playgroud)

然后,安装/部署此项目并在任何需要ADF工件的项目中将其声明为依赖项:

<project>
  ...
  <dependencies>
    ...
    <dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>adf-deps</artifactId>
      <version>1.0</version>
      <type>pom</type>
    </dependency>
  </dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

  • +1用于推荐合成而不是继承.这实际上有两种方式,它允许轻松地重用依赖集,并允许更容易地升级到这些依赖集的新版本. (2认同)