我对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
编辑:我的回答不好。所以我更新了。