java 在我的应用程序中向多模块maven项目添加依赖项

tv6aics1  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(211)

我有一个多模块库,比如:

pom.xml
    - module1 (results in jar1)
    - module2 (results in jar2)

我有另一个应用程序,我需要这两个jar作为依赖项。我可以添加两个依赖项,artifactId分别为module1和module2。
有没有一种方法可以添加依赖到父pom,这样两个jar都可以添加。

r7knjye2

r7knjye21#

不能直接向父POM添加依赖项以引入子模块作为依赖项。父POM通常用于管理子模块之间的共享配置,并且不包括或引用其子模块产生的构件。
处理这种情况的常用方法是,正如您已经做过的那样,将每个模块作为单独的依赖项添加到应用程序POM中。
但是,如果您试图简化依赖项管理,则有一些替代解决方案:

**创建uber或shaded JAR:**使用Maven的Shade Plugin或类似工具将两个模块合并到一个jar文件中。这个新的工件可以用作依赖项,从两个模块中引入所有类。但是,这可能会导致与其他依赖项的冲突,并且它是许多情况下的重量级解决方案。
**创建BOM(物料清单):**BOM是一种特殊的POM,用于控制项目依赖项的版本,并提供一个定义和更新这些版本的中心位置。BOM表可以导入到其他项目中,以确保跨多个模块或项目的依赖项的一致版本。
**聚合工件:**创建一个新模块,该模块依赖于所有其他模块,然后依赖于该新模块。只有当模块具有紧密耦合的关系时,这才真正有意义,否则,将不相关的工件分组不是一个很好的实践。

请记住,正确的解决方案取决于您的用例和项目的复杂性。您必须确保您选择的解决方案不会导致其他问题,例如版本冲突或不必要的大工件。#chatgpt

相关问题