将另一个项目的资源文件发布到上下文路径而不是eclipse中的jar文件

时间:2011-10-05 17:35:23

标签: java eclipse maven eclipse-wtp

我很少有常见的资源文件,比如基础JS,CSS文件和HTML文件,这些文件将被两个maven项目/模块使用。我把这些文件移到了一个普通的项目中。包括作为对两个项目的依赖。公共项目作为jar文件发布,我不想从jar文件中提供文件(使用ClassLoader的东西)。

是否有办法将公共项目资源复制到实际项目上下文文件夹中,如:

COMMON_PROJECT/src/main/webapp/login.htmlWEBAPP1/src/main/webapp COMMON_PROJECT/src/main/webapp/login.htmlWEBAPP2/src/main/webapp

实际要求 :我不想将公共文件作为jar文件发布,因为稍后这些文件将被移出war文件并直接放在Ngnix中服务器。有些人可以从这个角度提供更好管理的指导方针吗?

3 个答案:

答案 0 :(得分:2)

使用Maven,您可以将您的公共项目声明为overlay project作为依赖项,因此可以在其他项目中共享其资源。您必须使用最新的m2eclipse插件,并将WTP集成到support overlays in Eclipse IDE

答案 1 :(得分:0)

我尝试使用@Eugene Kuleshov回答的插件,但该插件与最新的m2e版本存在依赖性问题。

经过一些搜索后,m2e-wtp插件(更新网站:http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/)支持确切的网络叠加功能。

这需要最新的m2e插件(1.0 +)(更新网站:http://download.eclipse.org/technology/m2e/releases/

安装m2e-wtp后,我们需要安装buildhelper目录中的m2e生命周期映射器

  • Window > Preferences > Maven > Discovery > Open Catalog
  • 安装Lifecycle mappings > buildhelper

仅在这些m2em2e-wtp插件的最新版本中,支持weboverlay(我们在Project properties > Builders中看到的旧Maven构建器无法执行此操作)

但是,使用正常的Maven构建,叠加层开箱即用。默认情况下,Maven war插件(不是eclipse插件)会在我们Maven构建项目时将资源文件从依赖war(也是jar)复制到上下文路径中。如果我们想要对此流程进行更多控制,则需要overlay,例如一些不包括。

答案 2 :(得分:0)

您可以将资源文件提供为war项目。 然后使用Warpath Plugin使您的两个项目导入战争(及其资源)。