java - Maven 将一个项目的依赖项继承到另一个项目

标签 java maven bamboo

给定一个生成 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/

相关文章:

java - 如何在netbeans 7.4中创建maven wab(war as osgi bundle)项目?

linux - spring-security-core 2.0.3 spring-aop 2.0.8 导致 NoSuchMethodError

python - 如何添加脚本任务来在 Bamboo 中运行 pytest

java - 将 JAR 设置为跳过以加速 Tomcat 7 maven 插件启动

java - Moshi 通用型适配器

java - 在java中,Date()方法返回一个值。但我对此感到困惑

maven - mvn -e 完整的堆栈跟踪?

java - FoundationDB SQL 解析器获取 WHERE 子句

java - 尝试使用 Maven 在 JOOQ 中实现 EnumConverter 时出错

bamboo - Bamboo C.I Server 可以配置为像 Jenkins 一样显示工作区吗?