在pom.xml中从父POM强制运行配置文件

时间:2012-10-05 11:19:54

标签: maven

我有大约30个项目,其中6个必须有特殊(但相同)的构建过程。所有这些项目都继承自单亲。 我在父级中定义了特殊的构建过程。它包括几个插件和许多配置。

继承结构是这样的:

- global-parent (this is the place where special profile is defined)
   -a-parent
      -a-ear
      -a-war
      -a-ejb
      -a-special <--
   -b-parent
      -b-ear
      -b-war
      -b-ejb
      -b-special <--
   -c-parent
      -c-ear
      -c-war
      -c-ejb
      -c-special <--
  etc...

所以我不能让这些特殊的项目继承另一个pom。

如何设置&#34;旗帜&#34;在pom.xml中的那些特殊项目中,针对special-profile运行始终

现在我已经设置了个人资料/激活/文件/扩展,并在每个特殊项目中创建了特殊的空标记文件,但这非常难看。 我也尝试使用maven-properties-plugin设置一些系统属性标志,但它仍然很难看。

必须有更多的方法。这是一个糟糕的设计吗?

1 个答案:

答案 0 :(得分:1)

执行此操作的标准方法是使用两个级别的父项目。我已经使用“global-parent”和“webapps-parent”完成了这项工作,其中包含常用配置/配置文件,仅适用于webapp组件。但是,我发现你需要像“多重继承”这样的东西,这在Maven中并不存在。

否则,在我看来,“文件存在”激活是可以接受的。

<强>附录

在不知道特殊模块的“特殊”含义的情况下,很难回答有些主观的问题“这是一个糟糕的设计吗?”

也许封装所有其他插件的自定义插件会“更好”或“更多Maven-ish”,但在一天结束时 - 您的构建是否可维护且易于运行(即svn co project; cd project; mvn package)?

如果是这样,你已经实现了目标。