我有一个多模块maven项目。它有5个模块,其中2个是Web项目。
我想自定义我的插件只在war项目中运行。我的意思是在父母pom级别我想触发我的目标,只有我的战争项目会受到影响。有什么办法吗?
因此,我的战争项目pom将不会有重复的配置。
由于
答案 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-parent
,cool-parent-web
)
非网络广告(展开cool-parent
)
webapps(扩展cool-parent-web
)
在父母中,您可以定义特定于不同类型模块的设置。例如,在cool-parent
定义非与webapp相关的内容中,cool-parent-web
中您可以拥有maven-war-plugin
,jetty-maven-plugin
等所有奇特的内容。我通常拥有cool-parent-web
扩展cool-parent
以避免重复依赖项,插件设置等。
在cool-parent-web
中定义一个<pluginManagement/>
部分并为您的插件设置所有内容,然后在您的网络模块中使用它们。