首页 > 解决方案 > 如何将模块包含在另一个项目的顶级 POM 中?

问题描述

我已经搜索并堆栈溢出了所有内容,但可能还不够,因为我仍然不清楚如何将 Maven 项目的模块添加为另一个项目的依赖项。

例如,假设我们有:

MajorPager
  |___ POM.xml
  |___ chuck-commons-core
  |    |____POM.xml
  |____rajni-commons-core
       |____POM.xml

现在我想添加chuck-commons-core但不是rajni-commons-core. 如果我直接这样做,它找不到模块。所以我遇到了以下关于堆栈溢出和我的老朋友 Guggal 的讨论:

总之,下面的讨论讨论了如何创建多模块项目,而不是真正如何将顶级 POM 中的子模块包含到另一个项目中。

有用的上下文讨论

具体来说,我想从专家那里得到一个总结,他们如何将父 POM 的子模块添加为另一个项目的依赖项。

标签: javamavendependenciespom.xml

解决方案


截至目前,我认为这是最好的解决方案——将以下 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标记?) - 如果也是这种情况,请告诉我。


推荐阅读