一尘不染

如何通过其他项目扩展/自定义WAR

jsp

我们的项目有以下情形:

  • 打包为war文件的核心Web应用程序(称为Core项目)。
  • 每个客户都需要“定制”或“扩展”核心应用程序(称为客户项目)。这主要包括新的bean定义(我们正在使用Spring),即。用特定于客户的实现替换core.war中的服务实现。
  • 我们想独立开发核心和客户项目
  • 开发客户项目时,我们需要能够在Eclipse上(在Tomcat上)以Core项目作为依赖项来运行/调试它
  • 构建客户项目时,生成的War文件“包括”核心项目和客户项目。因此,此.war是应用程序的客户特定版本

我正在就工具和项目配置方面寻求最佳方法的建议。

我们目前正在使用Ant,但希望避免被更多的蚂蚁埋葬。有没有人用Maven做到这一点?

我已经看过很多关于如何构建依赖于Java应用程序的Web应用程序的文章,但是关于依赖于另一个Web应用程序的Web应用程序却一无所获。

谢谢!


阅读 231

收藏
2020-06-08

共1个答案

一尘不染

在Eclipse中,有一种“本机” WTP方法可以做到这一点。它主要使用链接的文件夹和.settings /
org.eclipse.wst.common.component文件中的一些技巧。您可以在http://www.informit.com/articles/article.aspx?p=759232&seqNum=3上阅读有关该文章的文章,该章名为“将Web模块分为多个项目”。问题是链接的文件夹必须相对于某个路径变量,可以在“窗口/首选项/常规/工作区/链接的资源”选项卡中定义。否则,链接的文件夹定义(可以在项目根目录的.project文件中找到)将包含工作站特定的路径。路径变量实际上应该是工作空间的根。该解决方案非常适合WTP,部署和其他所有工作。

第二种解决方案是使用ant。算了吧。您将深感遗憾。

第三种解决方案是使用maven。如果不做一些技巧,您会忘记WTP发布的便利性。像其他人建议的那样使用战争叠加层。确保同时安装m2eclipse和m2eclipse附加功能。最近发布了一个扩展插件,可以为您提供帮助。在此博客中描述。我没有尝试,但看起来还可以。无论如何,Maven与链接文件夹无关,因此,我认为即使有必要,即使第一个解决方案和该Maven覆盖图也可以一起使用。

对于无头构建,可以将HeadlessEclipse用于第一个解决方案。现在(我)已经死了,但是仍然可以工作:)。如果您使用Maven覆盖+
Eclipse素材,则Maven会覆盖无头的构建。

2020-06-08