我有两个 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/