Eclipse:有多个动态Web项目对单个war文件有贡献吗?

时间:2010-01-07 09:42:07

标签: java dynamic java-ee war

我的情况是,我基本上希望能够在Eclipse中拥有一个Web项目,其中WebContents文件夹是从多个项目合并而不是仅仅是一个动态Web项目。

如果我在项目A中有“a.jsp”,而在项目B中有“b.jsp”,我想在Web容器中找到一个单独的Web应用程序,其中“a.jsp”和“b。 jsp“在同一个文件夹中彼此相邻。如果所有文件(不仅仅是jsp文件)都可以这样合并,那将是完美的。

这是我们的应用程序的核心版本,但能够轻松处理客户特定的更改。

我知道我可以使用合适的蚂蚁魔法来做到这一点,但我们希望有一些适合我们当前基于Eclipse的开发过程的东西。我们将在Java类上使用JSR-330依赖注入,基本上我喜欢依赖注入的东西,但仅适用于任何资源,而不仅仅是类。

Eclipse可以这样做吗?

如果Eclipse不能,那么EAR部署是否适合?我目前只有WAR的经验。

4 个答案:

答案 0 :(得分:1)

如果使用Maven是一个选项,那么Maven overlays在这里是完美的,理论上应该由m2eclipse插件支持。但是我对此没有任何经验,可能存在一些问题(参见MNGECLIPSE-599),因此需要进行一些测试。

尽管如此,MNGECLIPSE-599的评论非常有趣,尤其是这一点:

  

对这个问题有什么好感吗?由于这个原因,我们整个团队已经转向Netbeans进行WAR开发。我们基本上等待Servlet 3.0为我们解决这个问题(Servlet 3.0将有效地否定我们在Maven中进行叠加的需要)我们公司在减少复制粘贴方面非常重要,因此我们使用叠加来管理必须在我们的应用

Java EE 6使覆盖层过时的方式对我来说并不是很清楚(通过Web Fragments?)但事实是Eclipse's WTP release with Java EE 6 support has been delayed to June 2010。因此,在此之前,您需要额外的工具(例如maven覆盖)或者应该考虑切换到NetBeans。

答案 1 :(得分:1)

我有一个类似的用例,我通过使用(如Pascal建议)Maven成功解决了。 我有一个根网站项目(也可以独立工作),对于每个客户端,我有一个单独的Web项目,配置为覆盖根网站项目。此外,由于每个客户端都有几个环境,我为每个环境创建了一个maven配置文件(test,prod,local,...)。我记录了这一点,如果你有兴趣我不介意给你发邮件。

答案 2 :(得分:0)

  • 你不需要改变你的“基于eclipse的开发过程”来使用ant。只需注册一个Ant构建器(right click project > Properties > Builders)并将ant脚本与您的eclipse进程集成
  • 您可以使用maven的多模块选项。 (eclipse的maven插件也非常好)
  • 使用也可以使用FileSync - 不是行业标准但非常强大。当然,它用于localhost上的开发。

以下是使用FileSync的一些提示:

  • 设置要复制到目标目录的文件/文件模式/目录(在您的情况下为Tomcat的webapps/application)。因此,只要按“保存”,文件就会被复制。
  • 通过引入链接资源(FileSync.xxxx.prefs)并使用prefs文件中的链接资源变量(让我们称之为preferences > workspace > linked resources)来创建WEBAPP_HOME亲戚中的所有绝对路径
  • 提交FileSync.xxxx.prefs文件
  • 告诉团队中的每个开发人员配置WEBAPP_HOME变量。因此,设置不仅对一台机器有效,对团队中的每台机器都有效。

答案 3 :(得分:0)

我建议使用servlet 3.0“捆绑jar文件中的资源”功能。 使用此功能,您可以在jar文件中包含Web资源(html / xhtml / css / js / jpg / etc)(当然还有java类文件),Web服务器将搜索“META-INF / resources”文件夹这些资源的罐子。

此处有更多详情:

http://alvinjayreyes.com/2013/07/28/servlet-3-0/