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

时间:2010-05-10 12:55:31

标签: java maven-2 maven

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

2 个答案:

答案 0 :(得分: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>

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

<project>
  ...
  <dependencies>
    ...
    <dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>adf-deps</artifactId>
      <version>1.0</version>
      <type>pom</type>
    </dependency>
  </dependencies>
</project>

答案 1 :(得分:1)

如果子POM文件实际上是一个子文件(即声明其父文件),那么它将继承依赖项,并且没有任何内容可供您使用。