首页 文章

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

提问于
浏览
7

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

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

4 回答

  • 3

    如果漫长的部署时间是正常的,也不知道如何优化它,我将从经验中得知 . 但我只是告知这取决于服务器和使用的服务器插件 . 在Apache Tomcat 6 Eclipse提供的插件和Sun Glassfish v3 GF-provided plugin的情况下,自动部署足够快 . 特别是Glassfish v3在启动时相对较慢,在亚秒(热)部署方面确实非常出色 .

    第一步是检查是否有替代Jetty Eclipse plugins然后尝试它们和/或是否有设置降低hotdeploy scan interval .

  • 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文件的变化

  • 0

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

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

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

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

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

    以下是如何创建这样的链接:文件系统中的新建>文件夹>高级>链接文件夹

相关问题