Eclipse WTP与Sydeo的比较,"无需发布即可提供模块"

103

我有一个问题,需要使用Eclipse的集成插件WTP找到sysdeo插件的性能表现。

为了进行迁移和比较,我在Eclipse中分别安装了两个插件。

根据我的理解,我注意到了生产力上的差异:WTP需要将源代码发布到一个构建目录中,以便Tomcat可以将它们整合。这个"发布"需要花费一些时间,需要重载上下文,以便修改后才能看到效果。(大多数情况下为5秒,最长为15-20秒)。

Sysdeo没有这个问题;它将目标对准了Eclipse目录,因此当文件被修改时,Eclipse会在项目内部进行构建,这些修改将立即可用(在浏览器上按F5即可立即查看结果)。

这是我的服务器配置:

"无需发布即可提供模块"选项允许像Sysdeo一样选择正在运行的项目的构建目录。这个配置在上下文文件中表达。(为了能够回溯,我已经勾选了"将模块内容发布到单独的XML文件中")

这些文件的比较如下:

  • 这是由Sysdeo生成的上下文文件
< Context path="/tatoile _syseo" reloadable="false" docBase="D:\32bit\serveur32bit\workspace\tatoile _syseo" workDir="D:\32bit\serveur32bit\workspace\tatoile _syseo\work" />
  • 由WTP生成的文件上下文

< ?xml version="1.0" encoding="UTF-8"?> <Context docBase="D:\32bit\serveur32bit\workspace\tatoile\web" path="/tatoile" reloadable="true" source="org.eclipse.jst.jee.server:tatoile"> <Resources className="org.eclipse.jst.server.tomcat.loader.WtpDirContext" extraResourcePaths="/WEB-INF/classes|D:\32bit\serveur32bit\workspace\tatoile\build\classes" virtualClasspath="D:\32bit\serveur32bit\workspace\tatoile\build\classes"/> <Loader className="org.eclipse.jst.server.tomcat.loader.WtpWebappLoader" useSystemClassLoaderAsParent="false" virtualClasspath="D:\32bit\serveur32bit\workspace\tatoile\build\classes"/> <JarScanner scanAllDirectories="true"/> </Context>

稍后分析这两个文件是相似的。

现在让我们回到问题上。我使用相同的服务器,因此上面的两个上下文文件都针对该服务器进行定义。经验:我通过sysdeo插件启动tomcat,在WTP方式下配置一种方式,通过sysdeo配置另一种方式。两种权限以相同的方式响应,修改在tatoile_syseo和tatoile项目中都是立即生效的。

另一方面,我通过Eclipse中的WTP插件(选项卡服务器等)启动tomcat,修改并未立即在tatoile_syseo和tatoile项目中生效。注意:必须将自动重新加载设置为已启用,以便考虑到修改。(当服务器向我们指示已重新加载上下文时,我们可以看到修改。)

enter image description here

我推断出来的是,配置上下文不是原因,而是插件启动tomcat的方式;而我被困在哪里……

这是WTP项目:

enter image description here


5
你在 Sysdeo 或 WTP 上遇到了问题吗?另一方面,确信 WTP 需要更多时间来进行更改,因为这是重新发布所需做的事情:(1) 构建类 (2) 卸载旧的 Web 应用程序 (3) 将构建结果复制到 Tomcat 的部署文件夹中 (4) Tomcat 将自动启动该应用程序。同时,使用 sysdeo,只要有更改(通过任何类文件中的新日期标识),RAM 中的类就会实时修改。然而,某些更改的限制无法实时进行(当您添加新方法,类结构也会更改时),在这种情况下,它会发出警告。 - user591593
我在同一个项目中使用过Sysdeo和WTP。我注意到最显著的区别是,对我来说,Sysdeo的配置似乎更容易些,但这可能是有偏见的。 - Markus
2
问题通过添加 MAVEN 和 WTP 部署解决了。没有任何性能问题,并且我没有激活“无需发布即可服务模块”。 - Vsplit
1
如果您解决了这个问题,能否发布一个答案? - Anubian Noob
@AnubianNoob 是的,就像我在之前的帖子中解释的那样。我通过使用Maven配置解决了这个问题。 - Vsplit
你能否给一个更详细的回答,并将其发布为答案,以便问题被标记为已解决?显然这是一个受欢迎的问题。 - Roman Davis
2个回答

3

以下是从 @Vsplit 引用的答案:

通过添加 MAVEN 和 WTP deployment,问题得以解决。没有性能问题... 我不会在不发布的情况下激活 serve modules。


-1 这不是答案。请添加更多细节的答案。 - Isaac G Sivaa
1
你好,很抱歉回复晚了。但正如你所注意到的,我无法解决与Sysdeo插件有关的问题。但我正在使用Maven插件和WTP部署。你可以查看这个示例教程https://www.youtube.com/watch?v=YeC7XQho-O0。 - Vsplit

2

在插件市场中寻找一个名为m2e-wtp的免费插件。这个插件可以解决提供的范围问题。至于未部署的类,我通常会查看部署程序集和/或Java构建路径。确保所有条目(以及依赖模块)都存在且位于正确的位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接