包装时包括运行时依赖关系的Maven方法



我有两个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插件或其他方法来完成此操作?

谢谢

我出于相同的原因写了此Maven插件。

它将所有列出的jar伪像添加到使用此插件的战争文件中。解决了JAR依赖项,并将其添加到战争文件中,如果没有找到同一版本的伪像。

重要的是仅在<dependency> POM部分内定义依赖项,因为这是Maven反应器使用的唯一配置。

如果您使用自定义插件来介绍自己的依赖性管理想法,则很可能会破坏反应堆。即使您的自定义方法可与常规mvn clean install一起使用,它通常会在使用-T4或类似选项启用多螺纹构建时爆炸。根本无法按照反应堆管辖的POM明确定义模块构建顺序。

模块之间共享代码的通常方法是创建一个新的模块C,该模块均依赖于AB

相关内容

最新更新