是否可以在父pom中定义"abstract"构建?



我想在父pom中定义一个构建,以将该构建强制执行到子pom。理想情况下,子pom只执行mvn安装并应用在父级别定义的构建。

我有两个问题:

  1. 构建使用仅在子级中定义的属性
  2. 当我在父级上安装mvn时,我只想创建pom并将其保存在我的maven repo上,而不是实际进行构建(这应该在子级中完成(
  3. 是否可以将辅助文件存储在父pom中,以便在子pom中使用它们

这可能吗?

您可以在父POM中定义很多内容。

  • 您可以在pluginManagement中定义所有插件。您可以使用父POM的<plugins>部分来激活插件,而无需在POM本身的构建中使用它们(执行时使用<phase>none</phase><inherited>false</inherited>(
  • 您可以构建父POM并将其放入存储库中
  • 您可以预定义属性并让子POM覆盖它们

但是您不能添加其他文件。

4所有现在才偶然发现这个问题的人(和我一样(:

除了前面回答中描述的可能性之外,您还可以在父项目中定义概要文件,但只能在具体项目中激活它们,例如通过覆盖概要文件激活属性。通过这种方式,您可以避免在构建父级时执行这些内容。

你甚至可以更进一步,解决额外文件的限制(注意,这是邪恶的*(:

  • 在父项目的存储库中定义助手模块
  • 将依赖项添加到父项目中定义的配置文件中的帮助器模块
  • 使用maven资源插件解压缩助手文件(复制资源(

*(为什么这是邪恶的-好吧,如果你需要这样的破解,这表明你的架构有问题。否则,如果这是一个常见的需求,Maven团队将提供一种适当的方法来处理它

最新更新