我有一个使用 Maven 构建的 Web 应用程序,由 Java (Spring) 后端和 Javascript (ExtJS/OpenLayers) 前端组成。该 Web 应用程序已慢慢成为许多衍生或子 Web 应用程序的基础。我的意思是,我们有一个 Web 应用程序,其功能已针对一些特定于领域的问题进行了扩展,这导致了一组全部依赖于通用功能的 Web 应用程序。
到目前为止,我们一直通过使用 SVN 存储库来“管理”该问题,该存储库包含派生 Web 应用程序分支的核心代码,并允许我们偶尔合并分支之间的更改。这种方法存在各种各样的问题,但选择它是有历史原因的,幸运的是我们现在能够纠正这个问题。
更好的解决方案似乎是将公共(public)核心代码变成一个库(并不难)并让派生子链接到它。不幸的是,大部分常见功能都存在于 javascript(ExtJS 小部件等)中,因此简单地生成 JAR 库是不够的。我们需要一种方法让“核心 javascript”文件进入子 web 应用程序,尽管不可能真正将它们视为 java 类,但我们的代码库通过利用 Ext JS 类系统尽了最大努力。
我的问题是是否有任何解决方案可以帮助解决这个问题?有没有人用 Maven 做过类似的事情?这是一种罕见的情况,我可能不得不求助于创建自己的 Maven 插件,还是应该寻找新的构建工具?
最佳答案
overlays maven-war-plugin 的功能可能有帮助。
常见的 js 文件(甚至可能是类,如果有意义的话)可以移动到单独的 war 文件中。如果它不会单独部署,您可以将 war 插件配置为不会因缺少 web.xml
而失败。文件 <failOnMissingWebXml>
元素。然后,将覆盖配置添加到每个衍生 war 中。
关于javascript - 管理可扩展的 java/javascript 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10201970/