我们向客户提供包含许多外部依赖关系的包。现在,客户可以使用您的库来开发最重要的东西。对于那些也在使用Maven的人,我们希望在程序集中包含一个 pom.xml 文件,其中包含所有依赖项,因此他们可以在Maven构建中使用它:
它应包含我们使用的所有依赖项,如下所示:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math</artifactId>
<version>2.1</version>
<scope>compile</scope>
</dependency>
有没有办法在Maven中实现这一目标?
答案 0 :(得分:1)
你的jar / war的pom.xml默认放在你的jar / war里面META-INF\maven\<groupId>\<artifacdId>
答案 1 :(得分:0)
您有两种选择:
第一个最常见也是首选的方法是依赖Maven的传递依赖性解析。
在项目中有一个POM(假设名为foo-api:1.0
),用于声明依赖关系(例如A:1.0:jar
,B:1.0:jar
)。
开发人员自己的项目(bar:2.0
)应该只依赖于foo-api:1.0
。通过传递依赖性解析,Maven只会将A:1.0:jar
和B:1.0:jar
作为bar:2.0
的依赖关系。
另一种方法与上述方法类似,但使用foo-api:1.0
作为bar:2.0
的父POM。
无论哪种方式都有效,但哪种方式适合取决于您的设计。