我很少有常见的资源文件,比如基础JS,CSS文件和HTML文件,这些文件将被两个maven项目/模块使用。我把这些文件移到了一个普通的项目中。包括作为对两个项目的依赖。公共项目作为jar文件发布,我不想从jar文件中提供文件(使用ClassLoader的东西)。
是否有办法将公共项目资源复制到实际项目上下文文件夹中,如:
COMMON_PROJECT/src/main/webapp/login.html
到WEBAPP1/src/main/webapp
COMMON_PROJECT/src/main/webapp/login.html
至WEBAPP2/src/main/webapp
实际要求 :我不想将公共文件作为jar文件发布,因为稍后这些文件将被移出war文件并直接放在Ngnix中服务器。有些人可以从这个角度提供更好管理的指导方针吗?
答案 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
仅在这些m2e
和m2e-wtp
插件的最新版本中,支持weboverlay(我们在Project properties > Builders
中看到的旧Maven构建器无法执行此操作)
但是,使用正常的Maven构建,叠加层开箱即用。默认情况下,Maven war插件(不是eclipse插件)会在我们Maven构建项目时将资源文件从依赖war(也是jar)复制到上下文路径中。如果我们想要对此流程进行更多控制,则需要overlay
,例如一些不包括。
答案 2 :(得分:0)
您可以将资源文件提供为war项目。 然后使用Warpath Plugin使您的两个项目导入战争(及其资源)。