为不同的容器构建不同的maven工件

时间:2012-11-02 10:25:42

标签: tomcat maven glassfish-3

我想创建一个在Tomcat和完整Java EE服务器上运行的项目(多模块)。由于tomcat缺少一些库,我需要将它们包含在Tomcat中,但是一个完整的Java EE容器有这些库,如果我包含它们甚至可能产生冲突。

我希望将所有html文件放在一个地方(可能是Java EE容器WAR项目),然后让另一个模块构建相同的war,但是在WAR文件中添加了依赖项。

我如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

您可以使用WAR overlays。 使用这种方法,您可以拥有一个包含所有共享内容的WAR模块 - 库,资源等。 然后你创建另一个模块(或者更多,比如说每个容器)并添加一个类型为WAR的依赖项 - 如下所示:

<dependency>
    <groupId>com.example.app</groupId>
    <artifactId>my-war-base</artifact>
    <version>1-SNAPSHOT</version>
    <type>war</type>
</dependency>

只需添加(到WAR项目!)即可确保WAR合并(=重叠)。您甚至可以从基础战争中排除某些部分,例如,如果您有许多容器需要一些资源/库,但单个容器存在问题。

可能会进行一些调整 - see the docs

顺便说一下,这种方法可以让你:

  • 一次为所有容器构建
  • 具有一致的构建输出(相同的war =&gt;相同的目的)