最佳做法是在 Maven 中有一个空的父项目吗?



我对 Maven 中的多模块项目很陌生,我刚刚了解到在创建父项目时,您基本上只需要将打包更改为"pom"-><packaging>pom</packaging>。鉴于此,如果您在父项目上运行mvn package,如果其中包含源代码,它将不会生成 jar 文件。 我找到了一种方法,通过使用插件,即使您正在执行父pom,您也可以生成jar文件:

... 
<packaging>pom</packaging>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>my-execution-id</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>          
</build>
...

我现在的问题是,在父项目中拥有源代码是最佳实践吗?还是最好将其保留为空,仅将其用于插件/依赖项管理等?

不要将源代码放入父 POM 项目中。它违背了期望,没有真正的优势。将代码放入模块中。关注@khmarbaise的评论。

如果您需要整个公司的模板或类似的东西,那么只需创建一个父pom就可以了(您只需要一个pom文件,不需要创建一个空项目(。在那里,您可以配置诸如存储库,所需的插件等内容。

它可以是这样的

parent-pom.xml (for the whole company, where you configure common stuff, don't put code here)
|_ projectA-parent-pom.xml (team A, doing project A)
|    |_ projectA-child-pom-1.xml
|    |_ projectA-child-pom-2.xml
|_ projectB-parent-pom.xml (team B, doing project B)
|_ projectB-child-pom-1.xml
|_ projectB-child-pom-2.xml
|_ projectB-child-pom-3.xml

编辑:我的回答不好。所以我更新了它。

相关内容

最新更新