Maven:在程序集中包含POM和已使用的依赖项

时间:2012-11-29 00:20:14

标签: maven dependencies pom.xml maven-assembly-plugin

我们向客户提供包含许多外部依赖关系的包。现在,客户可以使用您的库来开发最重要的东西。对于那些也在使用Maven的人,我们希望在程序集中包含一个 pom.xml 文件,其中包含所有依赖项,因此他们可以在Maven构建中使用它:

它应包含我们使用的所有依赖项,如下所示:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-math</artifactId>
    <version>2.1</version>
    <scope>compile</scope>
</dependency>

有没有办法在Maven中实现这一目标?

2 个答案:

答案 0 :(得分:1)

你的jar / war的pom.xml默认放在你的jar / war里面META-INF\maven\<groupId>\<artifacdId>

答案 1 :(得分:0)

您有两种选择:

第一个最常见也是首选的方法是依赖Maven的传递依赖性解析。

在项目中有一个POM(假设名为foo-api:1.0),用于声明依赖关系(例如A:1.0:jarB:1.0:jar)。

开发人员自己的项目(bar:2.0)应该只依赖于foo-api:1.0。通过传递依赖性解析,Maven只会将A:1.0:jarB:1.0:jar作为bar:2.0的依赖关系。

另一种方法与上述方法类似,但使用foo-api:1.0作为bar:2.0的父POM。

无论哪种方式都有效,但哪种方式适合取决于您的设计。

相关问题