如何在不必一直部署的情况下开发Java Web应用程序

时间:2010-04-19 20:34:59

标签: java eclipse deployment java-ee jetty

我已经建立了一个简单的Eclipse 3.5 / Jetty 6.1 Web应用程序,它可以返回hello world。有用。这是在Windows上并使用“Jetty通用服务器适配器”。我有自动部署工作,以便在定期更改后部署。

如何设置它以便如果我更改任何静态内容它不需要重新部署,即我可以直接点击F5查看更改。对于轻微的HTML更改,它几乎无法使用,等待20-30秒进行部署。

4 个答案:

答案 0 :(得分:3)

我以前没有使用过Jetty,所以我无法从经验中看出长时间部署时间是否正常以及如何优化它。但我只是告知这取决于服务器和使用的服务器插件。在Apache Tomcat 6 + Eclipse提供的插件和Sun Glassfish v3 + GF-provided plugin的情况下,自动部署足够快。特别是Glassfish v3在启动时相对较慢,在亚秒(热)部署方面确实非常出色。

第一步是检查是否有其他Jetty Eclipse plugins,然后尝试使用和/或是否有设置降低hotdeploy scan interval

答案 1 :(得分:1)

我使用maven配置

        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.25</version>
            <configuration>
                <scanIntervalSeconds>1</scanIntervalSeconds>
                <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
                    <append>true</append>
                </requestLog>
            </configuration>
        </plugin>

因此jetty每秒扫描一次更改,对于我的简单应用程序,重启app需要大约200ms。我注意到有时候看不到jsp文件的变化

答案 2 :(得分:0)

  1. 我发现,自动部署所需的时间在很大程度上取决于应用服务器。我没有使用Jetty进行自动部署,但JBoss(> 10秒)和Glassfish(<3秒)之间的差异很大。

  2. 您可以将应用程序服务器的静态目录链接到Eclipse工作区。这样,您可以直接在该目录中编辑文件。

  3. 以下是创建此类链接的方法:新建&gt;文件夹&gt;高级&gt;链接文件系统中的文件夹

答案 3 :(得分:0)

您所描述的问题可能是this one。一个已知问题是静态文件在Windows上的Jetty中被锁定 - 这可能会迫使您重新部署。通常,您只需编辑文件,无需重新部署任何内容即可查看更改。它甚至适用于类修改(在某种程度上)。

这是我今天第三次做广告,但这是基于Jetty测试的方法:Hifaces20 Testing

PS。 Hifaces20测试不受文件锁定问题的影响,它实现了建议的解决方法。