【问题标题】:Is it best practice to have an empty parent project in Maven?在 Maven 中有一个空的父项目是最佳实践吗?
【发布时间】:2020-04-06 11:34:57
【问题描述】:

我对 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>
...

我现在的问题是,在您的父项目中包含源代码是最佳做法吗?还是将其保留为空并仅用于插件/依赖项管理等更好?

【问题讨论】:

  • 在这种情况下,我宁愿查看 github 上流行的 java 存储库来检查它们的运行情况。例如,。 github.com/spring-projects/spring-boot
  • 首先,如果您的包装是 pom,请不要尝试在该项目中获取代码,因为它的目的是没有代码..这违反了约定优于配置的想法..如果您有代码要编译/测试/包一个多模块项目有一个具有包装jar 并且包含代码并且具有前面定义的父级的子级...

标签: maven pom.xml parent-pom


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果您需要整个公司的模板或类似的东西,那么只需创建一个父 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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      相关资源
      最近更新 更多