2013-01-03 126 views
1

在Java EE环境下,我建立了一个包含多个JSP文件的网页。 可以说包含的JSP之一是header.jsp。可以和Stackoverflow使用的非常相似,显示有关用户,链接等的信息。该JSP链接到java控制器以获取用户信息,并且是我的WAR文件(包括所有Web应用程序)的一部分。Howto在战争与Maven War插件之间重复使用战争资源

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

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

我假装是:

  • 不重复的代码
  • 两场战争使用的标题代码

的一个版本,所以现在的问题是:

有办法避免复制&将两个文件(header.jsp & controller.java)从旧项目粘贴到新项目?

+0

我没有绝对知道如何做到这一点使用Maven,但基本上你需要得到你的Maven的东西accompish相同的项目结构在这个密切相关的问题回答说:http://stackoverflow.com/questions/11210628/怎么办-I-包括-A-JSP文件,从-A-DIFF项目 - 到 - 我的项目 – BalusC

回答

6

Maven WAR plugin是为您处理WAR文件打包的插件,它提供了"Overlay" mechanism来解决这个问题。你已经在使用WAR插件了,只需让你的项目的类型为“WAR”; maven使用它作为如何构建项目的线索,包括使用WAR插件进行包装阶段绑定。

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

+0

这是非常有用的!非常感谢!! – Marcos

+0

你能举个例子吗? –

+0

@JohnS不好意思砸你一个链接到Google文档。这个链接的例子是相当不错的,但至少与我的概念答案相结合。 http://maven.apache.org/plugins/maven-war-plugin/overlays.html – chad