Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse:是否有多个动态web项目参与到单个war文件中?_Java_Dynamic_Jakarta Ee_War - Fatal编程技术网

Java Eclipse:是否有多个动态web项目参与到单个war文件中?

Java Eclipse:是否有多个动态web项目参与到单个war文件中?,java,dynamic,jakarta-ee,war,Java,Dynamic,Jakarta Ee,War,我现在的情况是,我基本上希望能够在Eclipse中拥有一个web项目,其中WebContent文件夹从多个项目中合并,而不仅仅是一个动态web项目 如果我在项目a中有“a.jsp”,在项目b中有“b.jsp”,我希望最终在web容器中有一个web应用程序,其中“a.jsp”和“b.jsp”在同一个文件夹中相邻。如果所有文件(不仅仅是jsp文件)都能像这样合并,那就太完美了 这是为了能够拥有我们应用程序的核心版本,但能够轻松地处理特定于客户的更改 我知道我可以用合适的ant magic来实现这一点

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

如果我在项目a中有“a.jsp”,在项目b中有“b.jsp”,我希望最终在web容器中有一个web应用程序,其中“a.jsp”和“b.jsp”在同一个文件夹中相邻。如果所有文件(不仅仅是jsp文件)都能像这样合并,那就太完美了

这是为了能够拥有我们应用程序的核心版本,但能够轻松地处理特定于客户的更改

我知道我可以用合适的ant magic来实现这一点,但我们希望有一些东西能够很好地适用于当前基于Eclipse的开发过程。我们将在Java类上使用JSR-330依赖项注入,本质上我希望类似于依赖项注入的东西,但只针对任何资源,而不仅仅是类

Eclipse可以做到这一点吗

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

  • 您不需要将“基于eclipse的开发过程”更改为使用ant。只需注册一个Ant构建器(
    右键单击项目>属性>构建器
    ),并将Ant脚本与eclipse进程集成
  • 您可以使用maven的多模块选项。(用于eclipse的maven插件也非常好)
  • 使用也可以使用-不是行业标准,但功能相当强大。当然,它用于在
    localhost
    上开发
以下是使用FileSync的一些技巧:

  • 设置要复制到目标目录的文件/文件模式/目录(Tomcat的
    webapps/application
    )。因此,只要按“保存”,文件就会被复制
  • 通过引入链接资源(
    preferences>workspace>Linked resources
    ),并使用prefs文件中的link Resource变量(称之为
    WEBAPP\u HOME
    ),使
    FileSync.xxxx.prefs
    中的所有绝对路径成为相对路径
  • 提交
    FileSync.xxxx.prefs
    文件
  • 告诉团队中的每个开发人员配置
    WEBAPP\u HOME
    变量。因此,设置不仅对一台机器有效,而且对团队中的每台机器有效

如果使用Maven是一种选择,那么Maven在这里将是完美的,理论上它应该得到m2eclipse插件的支持。但我没有这方面的经验,可能会有一些问题(请参阅),因此这需要一些测试

然而,他的评论很有意思,尤其是这一条:

你喜欢这个问题吗?因此,我们的整个团队都搬到了Netbeans进行战争开发。我们基本上在等待Servlet 3.0为我们解决这个问题(Servlet 3.0将有效地消除我们在Maven中进行覆盖的需要)我们公司在减少复制粘贴方面做得很好,所以我们使用覆盖来管理我们应用程序中必须常见的战争媒体


JavaEE6使覆盖过时的方式对我来说并不十分清楚(通过Web片段?),但事实是。因此,在那之前,您需要额外的工具(例如Maven覆盖),或者应该考虑切换到NETBESE。

< P>我有一个类似的用例,通过使用(如Pascal建议的)Maven成功地解决了这个问题。
我有一个根web项目(也可以独立工作),对于每个客户端,我都有一个单独的web项目,配置为与根web项目重叠。此外,由于每个客户机都有几个环境,我为每个环境(测试、生产、本地等)创建了一个maven概要文件。我对此做了一些记录,因此如果您有兴趣,我不介意将文档邮寄给您。

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

详情如下:


在进行web应用程序开发时,您是否有使用ant builder的经验?我们目前使用Tomcat,但是对于JSR330的原因,我们考虑迁移到GLASISFISH。我对周转时间特别感兴趣-按Ctrl-S,然后在浏览器中重新加载。我对maven和新添加的选项-FileSync有经验。我使用maven创建构建,使用FileSync创建Ctrl+S。它非常强大-您只需将其配置为将文件从每个项目移动到一个公共目标dir.maven不是一个选项,除非我们绝对不可避免地必须这样做。我们不受maven生活方式的诱惑:)JEE6的原因是我们希望将web服务堆栈、依赖注入和JSF2.0推送到容器中,而不是在WAR中部署合适的实现。根据我今天的调查,我认为现在还不适合这样做。感谢您提到Servlet3.0来解决一些问题。我会调查的。我们迁移到maven,结果就是这样。谢谢。注意,m2e需要先变得足够好。这件事发生在去年。我建议你把它写在博客上。这是任何非平凡项目都需要能够处理的事情。好主意,对我可以使用的社区/maven博客有什么建议吗?