仅用于战争项目的父母pom和maven目标

时间:2011-07-13 10:24:39

标签: maven

我有一个多模块maven项目。它有5个模块,其中2个是Web项目。

我想自定义我的插件只在war项目中运行。我的意思是在父母pom级别我想触发我的目标,只有我的战争项目会受到影响。有什么办法吗?

因此,我的战争项目pom将不会有重复的配置。

由于

2 个答案:

答案 0 :(得分:2)

你可以建立一个战争父母pom(你的战争项目继承自哪里)和一般父母pom(其他所有人继承)。

        general parent
          /      \   \
   war parent     \   \
      /  \         \   \  
 war1    war2  other1  other2

对于建筑物,你可能有一个单独的构建pom,具有上述所有模块。

HTH

答案 1 :(得分:0)

我多次遇到同样的问题,我得出的结论是,最佳解决方案如下:

cool-master
|-+ parents
| |- cool-parent
| |- cool-parent-web
|
|- module1
|- module2
|- module3
|- module-web1
|- module-web2

在上面的示例中,有三种类型的模块:

  • 父POM-s(cool-parentcool-parent-web

  • 非网络广告(展开cool-parent

  • webapps(扩展cool-parent-web

在父母中,您可以定义特定于不同类型模块的设置。例如,在cool-parent定义非与webapp相关的内容中,cool-parent-web中您可以拥有maven-war-pluginjetty-maven-plugin等所有奇特的内容。我通常拥有cool-parent-web扩展cool-parent以避免重复依赖项,插件设置等。

cool-parent-web中定义一个<pluginManagement/>部分并为您的插件设置所有内容,然后在您的网络模块中使用它们。