【发布时间】:2011-02-17 15:57:29
【问题描述】:
我的目标实际上很简单,但由于有多种(并且看似复杂的方法可以做到这一点)我想知道我需要做什么......所以我有一些需要的运行时库(特别是 ADF 库)添加到每个项目。这个父 pom 文件将只包含 JAR 依赖项。如何从子 pom 文件中使用这个 pom 文件?
【问题讨论】:
我的目标实际上很简单,但由于有多种(并且看似复杂的方法可以做到这一点)我想知道我需要做什么......所以我有一些需要的运行时库(特别是 ADF 库)添加到每个项目。这个父 pom 文件将只包含 JAR 依赖项。如何从子 pom 文件中使用这个 pom 文件?
【问题讨论】:
我不认为在这里使用继承是一个好的解决方案。即使每个项目都使用 ADF 工件,您也不希望所有 pom 都获得这些依赖项,因此在公司父 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>
【讨论】:
如果子 POM 文件实际上是子文件(即声明其父文件),那么它将继承依赖项,您无需执行任何操作。
【讨论】: