如何在 Maven POM 中继承构建链?

Posted

技术标签:

【中文标题】如何在 Maven POM 中继承构建链?【英文标题】:How to inherit build chain in Maven POM? 【发布时间】:2017-08-26 05:26:00 【问题描述】:

似乎您只能继承插件配置。我可以继承完整的标签吗?

我希望我的所有项目都使用相同的构建链。我希望创建一个带有这样一个构建链的单父 pom。听起来像是一个相当合乎逻辑(和必要)的请求,不是吗?

【问题讨论】:

构建链你怎么称呼它是Maven生命周期,如果你使用相同的包装类型,生命周期总是相同的......也许我误解了你的问题? 我没有说清楚。 “构建链”是指 部分中的 集合。我如何才能为我的所有项目继承它而不必在每个 POM 中重写此部分?似乎多余且可以避免。 Define Maven plugins in parent pom, but only invoke plugins in child projects的可能重复 【参考方案1】:

您可以像这样为特定项目创建一个 pom 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.soebes.smpp</groupId>
    <artifactId>smpp</artifactId>
    <version>2.3.0</version>
  </parent>

  <groupId>com.soebes.examples.j2ee</groupId>
  <artifactId>parent</artifactId>
  <version>3.4.6-SNAPSHOT</version>
  <packaging>jar</packaging>

您可以将所需的插件配置放入给定的父级。喜欢这个example。

除此之外,您不需要仅通过 pluginManagement 在构建部分定义插件,您可以在其中定义相应插件的配置和版本。以here为例。

【讨论】:

泰,khmarbaise。这正是我试图做的 b/f 并且不知何故构建 pluginManagement 没有被继承。我会暂时接受你的回答,然后再试一次。但上次它对我不起作用。

以上是关于如何在 Maven POM 中继承构建链?的主要内容,如果未能解决你的问题,请参考以下文章

maven继承与聚合

pom.xml

如何在 Swift 中继承 UITableViewController

如何在 TypeScript 中继承 PromiseLike 接口?

如何在一个类中继承 QGraphicsRectItem 和 QGraphicsEllipseItem?

如何在 JavaScript 中继承 C++ 类?