java - 如何将模块包含在另一个项目的顶级 POM 中?
问题描述
我已经搜索并堆栈溢出了所有内容,但可能还不够,因为我仍然不清楚如何将 Maven 项目的模块添加为另一个项目的依赖项。
例如,假设我们有:
MajorPager
|___ POM.xml
|___ chuck-commons-core
| |____POM.xml
|____rajni-commons-core
|____POM.xml
现在我想添加chuck-commons-core
但不是rajni-commons-core
. 如果我直接这样做,它找不到模块。所以我遇到了以下关于堆栈溢出和我的老朋友 Guggal 的讨论:
总之,下面的讨论讨论了如何创建多模块项目,而不是真正如何将顶级 POM 中的子模块包含到另一个项目中。
有用的上下文讨论
SO
添加对父 POM 项目的引用SO
如何将父 POM 作为依赖项添加到不同的 Maven 项目SO
添加对父 POM 的引用SO
Maven 父 POM 与模块 POMSO
依赖多模块聚合器项目SO
如何在 Eclipse 中添加依赖项?SO
如何在不同包的子项目上配置 Maven 多模块依赖?SO
如何在父项目 POM 中添加模块作为依赖项?SO
如何在 Maven 中添加依赖项?Maven
依赖机制Maven
POM 聚合Baeldung
多模块项目Codetab
Maven 多模块Howtodoinjava
Maven父子POM示例Mastertheboss
Maven 多模块教程Codetab
多模块分层项目Sonatype
如何跨项目共享资源Spring
多模块项目
具体来说,我想从专家那里得到一个总结,他们如何将父 POM 的子模块添加为另一个项目的依赖项。
解决方案
截至目前,我认为这是最好的解决方案——将以下 ccodee 添加到MajorPager
.
代码块 1 传入
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.teachme.how</groupId>
<artifactId>MajorPager</artifactId>
<version>0.6-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
代码块 2 传入
<dependencies>
...
<dependency>
<groupId>com.teachme.how</groupId>
<artifactId>norris-commons-core</artifactId>
<version>0.6</version>
</dependency>
...
</dependencies>
当您这样做时,Maven 可以找出依赖项所在的位置 - 因此 Maven 使用mvn clean -U install
或来选择它们mvn package -U -DskipTests
。如果这不是最有效的模式,我希望接受教育。或者,如果上面的任何字段是 Maven 不希望我指定的可选字段,因为它可以自己派生它(例如,version
标记?) - 如果也是这种情况,请告诉我。
推荐阅读
- python - discord.py:音乐机器人不断抛出 OSError
- mocha.js - 为什么 Mocha 不与 Yarn Berry 合作?
- android - Android Studio Emulator 未开始显示 AVD 已被杀死
- android - 使用自己的应用程序时如何不显示抬头通知?
- reactjs - 在 Chrome 浏览器 45 上的反应应用程序中出现错误“”Uncaught TypeError: Object.assign is not a function”。如何在节点模块中转换它?
- laravel - Laravel 使用 lat 和 long 值查找 10KM 内的商店
- regex - 正则表达式提取文件名信息的问题
- c# - CustomControl 中文本框的事件 PreviewTextInput 。请帮我
- github-actions - GitHub Actions:如果问题已经在项目中,请不要运行作业
- java - 如何从 Oracle 中的列中匹配逗号分隔值?