在Maven中有一个空的父项目是最佳实践吗?
我对Maven中的多模块项目非常陌生,我刚刚了解到,在创建父项目时,基本上只需要将打包更改为“pom”->在Maven中有一个空的父项目是最佳实践吗?,maven,pom.xml,parent-pom,Maven,Pom.xml,Parent Pom,我对Maven中的多模块项目非常陌生,我刚刚了解到,在创建父项目时,基本上只需要将打包更改为“pom”->pom。如果您在父项目上运行mvn包,它将不会生成jar文件(如果您在其中包含源代码)。 我找到了一种方法,通过使用插件,即使在执行父pom时也可以生成jar文件: ... <packaging>pom</packaging> ... <build> <plugins> <plugin> <groupId>
pom
。如果您在父项目上运行mvn包
,它将不会生成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>
...
。。。
聚甲醛
...
org.apache.maven.plugins
maven jar插件
2.2
我的执行id
包裹
罐子
...
我现在的问题是,在父项目中拥有源代码是最佳实践吗?或者最好是将其保留为空,并将其用于插件/依赖项管理等?如果您需要整个公司的模板或类似的模板,那么只需创建父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
编辑:我的答案不好。所以我更新了它。如果你需要整个公司的模板或者类似的东西,那么只需要创建一个父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
编辑:我的答案不好。所以我更新了它。不要将源代码放入父POM项目中。这违反了预期,也没有真正的优势。将代码放入模块中。遵循@khmarbaise的评论。不要将源代码放入父POM项目中。这违反了预期,也没有真正的优势。将代码放入模块中。跟随@khmarbaise的评论。在这种情况下,我宁愿查看github上流行的java存储库,以了解它们的情况。例如,。首先,如果您的打包是pom,不要尝试在该项目中获取代码,因为它不打算包含代码。这违反了约定而非配置的思想。如果您有代码要编译/测试/打包,则多模块项目有一个子模块,该子模块具有打包
jar
,并且包含代码,并且具有定义的父模块早些时候……在这种情况下,我宁愿检查github上流行的java存储库,以检查它们的运行情况。例如,。首先,如果您的打包是pom,不要尝试在该项目中获取代码,因为它不打算包含代码。这违反了约定而非配置的思想。如果您有代码要编译/测试/打包,则多模块项目有一个子模块,该子模块具有打包jar
,并且包含代码,并且具有定义的父模块早期的。。。