如何在另一个项目的顶级POM中包含这些模块?

时间:2019-03-20 23:17:28

标签: java maven dependencies pom.xml

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

例如,假设我们有:

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

现在,我想添加chuck-commons-core,而不是rajni-commons-core。如果直接执行此操作,则找不到模块。因此,我遇到了以下有关堆栈溢出和我的老朋友Guggal的讨论:

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

关于上下文的有用讨论

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

1 个答案:

答案 0 :(得分:0)

到目前为止,我认为这是最好的解决方案-将以下代码添加到MajorPager的POM.xml中。

代码块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 installmvn package -U -DskipTests来获取它们。如果这不是最有效的方式,我想接受教育。或者,如果上面的任何字段都是Maven不想让我指定的可选字段,因为它可以自行衍生(例如,version标签?)-请也告诉我是否也是这种情况。