一尘不染

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

tomcat

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

我想将我所有的html文件放在一个地方(可能是Java EE容器WAR项目),然后再建另一个模块,它可以产生相同的效果,但是在WAR文件中增加了依赖性。

我该如何实现?


阅读 196

收藏
2020-06-16

共1个答案

一尘不染

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

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

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

可能还有其他一些调整- 请参阅文档

顺便说一句,这种方法允许您:

  • 一次构建所有容器
  • 具有一致的构建输出(相同的战争=>相同的目的)
2020-06-16