具有不应继承的定义的父 pom

Posted

技术标签:

【中文标题】具有不应继承的定义的父 pom【英文标题】:Parent pom with definitions that shouldn't be inherited 【发布时间】:2021-08-04 16:57:08 【问题描述】:

我正在尝试构建一个父 pom 。我没有使用dependencyManagement 或pluginManagement。我希望所有的孩子都继承一切。

但是,父项目本身有一个特定的构建要求,我正在使用 maven-jar-plugin。我不希望孩子继承这块土地。有没有办法指出子项目不应该继承的部分?

但是,子项目 也使用 maven-jar-plugin 用于另一个部分。基本上,我有

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
         <execution>
               
         </execution>
    </executions>
    <configuration>
       <archive>
       
       </archive>            
     </configuration>
 </plugin>

我希望配置部分被所有子代继承,但执行部分只给父代

【问题讨论】:

我不认为你是不可能的。但我只想指出,父级只能是 POM 类型,因此它通常对 JAR 插件本身没有太多用处。 是的,你是对的。我意识到。我试图将我们的“普通”罐子变成父母,但意识到我不能那样做。所以我转而将父项目设为“空”项目 【参考方案1】:

将配置放入&lt;pluginManagement&gt;

将执行放入&lt;plugins&gt;

使用&lt;inherited&gt;false&lt;/inherited&gt;

【讨论】:

看起来inherited 标签是我需要的。但是通过 pluginManagement 上的配置,子项目仍然必须声明该插件,对吗?为什么建议不要将其保留在插件部分,而是使用默认的 inherited 值? 你也可以试试。通常,您不需要声明 jar 插件,因为它是标准 jar 生命周期的一部分。

以上是关于具有不应继承的定义的父 pom的主要内容,如果未能解决你的问题,请参考以下文章

Maven 插件配置继承

maven 聚合与继承

用于指定分发管理的自定义 spring boot 启动器

011.maven 继承与聚合

maven pom 怎么定义变量

Java自定义接口,抽象类的父类都是Object吗?