2

在 Java EE 环境下,我构建了一个包含多个 JSP 文件的网页。假设包含的 JSP 之一是header.jsp。可能与 Stackoverflow 使用的非常相似,显示有关用户、链接等的信息。此 JSP 链接到 java 控制器以获取用户信息,并且是我的 WAR 文件的一部分,包括所有 Web 应用程序。

为了开发它,我使用了 Eclipse,并使用 Maven 构建和打包它。

现在我需要构建一个新的 webApplication(所以是一场新的战争),我想重用标头。

我假装的是:

  • 不要重复代码
  • 两场战争都使用一个版本的标头代码

所以问题是:

有办法避免将旧项目中的两个文件(header.jsp 和 controller.java)复制并粘贴到新项目中吗?

4

1 回答 1

8

Maven WAR 插件是为您处理 WAR 文件打包的插件,它提供了“覆盖”机制来解决这个问题。只需将项目设为“WAR”类型,您就已经在使用 WAR 插件;maven 使用它作为如何构建项目的线索,包括使用 WAR 插件进行包阶段绑定。

Overlay 的工作方式是您的 WAR 文件将另一个 WAR 项目声明为依赖项,就像您将删除对所需 jar 文件的依赖项一样。当 WAR 插件的包 mojo 触发时,它将看到对另一个 WAR 的这种依赖关系,并将您的新战争构建为两者的组合。注意,如果两个 WARS 中都存在文件,则不会合并文件;一个简单地覆盖另一个。您可以配置插件以选择使用哪一个;默认情况下,获胜的是当前项目的文件。另请注意,如果您愿意,您可以依赖不止一场战争。

于 2013-01-03T17:24:34.360 回答