使用Jetty和Maven进行Web开发

Phư*_*yễn 7 eclipse maven-2 jetty

我发现使用Eclipse使用Maven和Jetty进行Web开发非常令人沮丧,与我使用Visual Studio进行比较.每次我进行更改,甚至是我的视图文件中的微小更改(例如*.jsp),然后我必须重新打包整个网络 - >等待jetty重新加载所有内容,然后才能看到更改.

有没有更好的方法来做到这一点,有些事情就像一个自动插件,它将选择更改的文件并将更改的文件部署到Web服务器?

Pas*_*ent 13

您一直使用Maven,Jetty(和Eclipse)的方式尚不清楚,但由于问题标记为Maven,我将介绍Maven方式.使用类型项目war,一个简单的方法来启动和运行webapp是使用Maven Jetty插件.为此,只需将以下代码段添加到您的POM:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.10</version>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

通过此设置,运行mvn jetty:run 将启动一个部署了应用程序的jetty容器.对视图的任何更改都将导致在请求时重新编译JSP.要配置jetty插件以监视Java代码更改,您还必须添加scanIntervalSeconds选项:

scanIntervalSeconds 可选.扫描webapp以检查更改之间的暂停(以秒为单位),如果检测到任何更改则自动进行热重新部署.默认情况下,此值为0,禁用热部署扫描.大于0的数字启用它.

所以配置可能如下所示:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.10</version>
        <configuration>
          <scanIntervalSeconds>1</scanIntervalSeconds>
        </configuration>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

如果您希望能够连接远程调试器,请查看这些说明.

这就是我一直使用Jetty与Maven和Eclipse的方式,我一直很满意这个设置.我从来没有将Jetty适配器用于WTP,之前的设置是无与伦比的.