java - 打包时包含运行时依赖项的 Maven 方式

标签 java maven jenkins

我有两个 Maven 项目,A 和 B,其中 A 在编译时依赖于 B,但在运行时 B 需要 A 的一些类。

我所做的是:

A的pom.xml

<dependency>
  <groupId>B</groupId>
  <artifactId>B</artifactId>
  <version>${B.version}</version>
</dependency>

B的pom.xml

<dependency>
  <groupId>A</groupId>
  <artifactId>A</artifactId>
  <version>${A.version}</version>
  <scope>runtime</scope>
</dependency>

当让 Jenkins 编译项目时,它无法将彼此编译为下游项目,因为它发现了循环依赖并避免了无限构建循环。

所以,我想到的是一种方法,仅在打包B时(当Jenkins执行mvn package时)添加A的运行时依赖,这样Jenkins就不会在pom中找到循环依赖.xml 文件并配置下游编译。

有没有办法通过现有的 Maven 插件或其他方式来完成此任务?

谢谢

最佳答案

我写了this Maven plugin出于同样的原因。

它将任何列出的 JAR Artifact 添加到使用此插件的 WAR 文件中。如果未找到具有相同版本的 Artifact ,则会解析 JAR 依赖项并将其添加到 WAR 文件中。

关于java - 打包时包含运行时依赖项的 Maven 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49570201/

相关文章:

jenkins - 我在 Jenkins 上运行时显示gradle错误

java - 为什么 compilerArgs 只能在 fork 为真时设置?

java - hibernate4-maven-plugin 找不到带注释的类

java - 尝试使用 MongoDB 设置 Querydsl 3.6.0,但未找到 MorphiaAnnotationProcessor

git - Jenkins CI/CD - 将 Jenkinsfile 保存在我想要构建的单独存储库中

java - String 类中的 substring 方法导致内存泄漏

java - 如何在 Mule 中查找 Java 组件?

java - 迭代列表时删除列表条目

java - 在数组中重新分配值的简单方法

jenkins - 如何在Jenkins中将脚本的某些返回值 "map"更改为 "yellow"状态?