给定一个生成 jar 的 Maven 项目 A:
<groupId>myprojects</groupId>
<artifactId>A</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>some.needed.group</groupId>
<artifactId>some.needed.artifact1</artifactId>
</dependency>
<dependency>
<groupId>some.needed.group</groupId>
<artifactId>some.needed.artifact2</artifactId>
</dependency>
</dependencies>
和项目 B 依赖于 A 并生成企业文件:
<groupId>myprojects</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
<packaging>ear</packaging>
<dependencies>
<dependency>
<artifactId>A</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
我怎样才能让项目 B ear Artifact 不仅包括项目 B 的 jar Artifact ,还包括它的依赖 Artifact some.needed.artifact1 和 some.needed.artifact2?
我编辑并添加了这个,因为似乎只有在从 Bamboo 运行 mvn 时才会出现该行为: 奇怪的是,当我从 Eclipse 本地运行 mvn 时它正在工作,但当它由 Bamboo 持续集成服务器运行时却没有。在本地运行时,我正确生成了 application.xml,并引用了所有传递依赖项,将相应的 jar 文件复制到 lib 文件夹。在 Bamboo 计划中,生成的 application.xml 不包含引用且 jar 文件不在 lib 文件夹中。
最佳答案
首先作为更正,我认为依赖应该在 A 上,而不是在 B 上,像这样:
<dependencies>
<dependency>
<artifactId>A</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
关于拥有依赖 jars 的原始问题,我认为它们应该在您的 EAR 文件中可用,因为您依赖于 A project
而这又依赖于 some。 needed.artifact1 和 some.needed.artifact2
(传递依赖项),因为您提供的范围是 默认的,所以 maven 会将其视为编译,并且所有 jars 都将捆绑在您的 ear 文件中。
谢谢
关于java - Maven 将一个项目的依赖项继承到另一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18003244/