我有4个网络应用程序。但图像,CSS,javascripts是相同的。 当我需要将更改传播到所有项目后,我在一个项目中进行更改。 什么是最好的方法 - 只使用资源创建公共jar或使用类似于SVN中的链接的东西? 感谢。
答案 0 :(得分:3)
我有相同的要求,使用 Bower 和一个小的 Perl脚本得到了我需要的内容。
在共享项目中执行文件的简单复制的问题是,如果将来出于任何原因需要您的某个项目临时拥有略微修改的版本,您实际上将破坏项目或部署例程。通过将项目放在他们自己的版本控制的存储库中,这是一种更清晰的方式来管理项目之间的共享资源,因此每个项目都可以引用特定版本“最新”或“1.0.0”等...现在解决方案:
Bower 是一个包管理器,除其他外,它可以帮助管理git存储库的检索/依赖。您可以从网址或驱动器上的本地路径获取git存储库。因此,需要在项目之间共享的所有文件都将它们放在各自的git存储库中。然后,Bower可以获取特定版本的共享内容。唯一的问题是,凉亭将它们全部复制到一个特定的子目录中,这并不总是理想的。
脚本(bower-redeployer)所以我使用这个perl脚本将获取的共享资源部署到我项目中的正确位置。
答案 1 :(得分:1)
一些建议......
答案 2 :(得分:1)
使用maven资源插件,您可以指定copy-resources目标,在构建war文件之前将公共资源复制到指定的项目中。
我还看到在构建期间使用了一个链接(ln -s
)的公共目录。这避免了创建资源的物理副本的空间和时间负担。
答案 3 :(得分:1)
(将user710818's comment提升为答案)
考虑使用Maven WAR插件的叠加功能,如以下链接所述。从第一个链接,
覆盖用于跨多个Web应用程序共享公共资源。 WAR项目的依赖关系收集在WEB-INF / lib中,但WAR项目本身覆盖的WAR工件除外。