我有一个由一个父项目和几个模块组成的maven项目,foo
,bar
,foobar
和web
。
<modules>
<module>foo</module>
<module>bar</module>
<module>foobar</module>
<module>web</module>
</modules>
web
有foo
、bar
和foobar
作为依赖关系,并被构建为WAR。出于多种原因,我需要构建另一个包含foo
和bar
但不包含foobar
的 WAR .实现这一目标的最佳方法是什么?是否可以使用 maven 配置文件来定义不同的依赖项?或者最好的解决方案只是添加第二个战争建设模块(例如web2
( 没有foobar
,因为像这样的依赖关系表明: Maven为同一项目生成两个不同的WAR文件(请参阅该答案中的"多模块结构"(
假设顶级pom的工件类型是"Pom",则模块节点只是一个聚合器并指定构建执行顺序 - 它不指定每个子模块的依赖项是什么。
您可以在父 pom 的底部将 web2 添加为另一个模块,然后在 web2 的 pom 中,您可以指定战争的工件类型以及 foo 和 bar 的依赖关系。 Foo和bar将包含在你的战争神器中,而foobar不会。