我在spring mvc中做了一些项目,并使用mvn jetty作为运行时环境,整个工作区也在Eclipse中。我已经在使用tomcat作为运行时的servlet中看到过,如果在Java文件中进行任何更改,那些文件会在eclipse中自动重新编译,这会阻止我们再次重新启动tomcat,从而节省大量时间。
但是在maven中,它将文件编译为目标文件夹,除少数情况外,jsp中的任何更改都会立即反映出来,但在我使用mvn jetty之前,Java文件中的更改不会自动重新编译:再次运行。即使在跳过测试之后,这也会消耗大量时间,是否有任何配置使maven自动重新编译已更改的java文件,或者我应该运行mvn jetty:每次更改时一次又一次地运行..?感谢
编辑:我使用mvn jetty:在eclipse中运行,而不是使用外部终端
答案 0 :(得分:1)
您只需在插件
中设置scanIntervalSeconds属性即可<强> scanIntervalSeconds 强>
- 扫描webapp以检查更改并自动进行热重新部署(如果检测到任何内容)之间的暂停秒数。 默认情况下为0,这会禁用热部署扫描。大于0的数字可以启用它。
基本上像
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<contextPath>/</contextPath>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
<scanIntervalSeconds>5</scanIntervalSeconds>
</configuration>
</plugin>
我一直都在使用它。工作良好。以上将每5秒扫描一次更改。是的,甚至是你的Java文件。
此外,扫描完成后,如果在该时间间隔内接收到更改,您应该会在控制台中看到一些更新。如果您没有看到任何更新,则可能无法获取特定文件(尽管应该选择的Java文件,我只是在谈论关于其他文件一般)。如果是这种情况,您可以明确指定<scanTargets>
<强> scanTargets 强>
- 可选。除了插件自动扫描的文件和目录之外,还要定期扫描的文件和目录列表。
<configuration>
...
<scanTargets>
<scanTarget>path/to/somefile</scanTarget>
</scanTargets>
</configuration>
答案 1 :(得分:0)
也许你可以使用Run-Jetty-Run eclipse插件。
https://code.google.com/p/run-jetty-run/wiki/UserGuide 部分如何使用Java热部署 http://code.google.com/p/run-jetty-run/wiki/RunMavenWebAPP