eclipse - 使用 Gradle+Eclipse 在 Jetty 上启用热部署的最佳方式

标签 eclipse jetty gradle hotdeploy gradle-eclipse

我习惯了 mvn,但我正在为一个小型 Web 开发项目测试 Gradle (v1.8)。

我注意到 Jetty Gradle 插件支持自动扫描和热部署,所以我启用了它。我的目标是从 Eclipse 重新编译,并在每次更改 Controller 等时让 Jetty 重新加载上下文。

但是,这是不起作用的,主要是因为 Gradle 编译输出转到 build/,但是 Gradle Eclipse 插件创建了一个 .classpath 配置,将所有 Eclipse 输出定向到 /bin (甚至混合测试和主源文件夹)。

有办法吗?...

  1. 在单独的控制台上运行 graddle jettyRun。
  2. 在 Eclipse 上保存修改后的类(触发编译)
  3. 看到 Jetty 接受更改并重新加载上下文。

根据我的研究,我已经确定了三种解决方法,但它们都不能解决上述问题(如果您有相关评论或更多建议,我将发布它们)

  1. 调整 Gradle Eclipse 配置,将测试和主构建输出定向到 Gradle 使用的同一目录(使用 here 所示的模式)。有些人不推荐这样做,因为这意味着使用两个不同的编译系统,可能会互相干扰。
  2. 使用 Gradle eclipse-wtp 插件生成 WTP2 配置,并使用 Eclipse 的“Run AS -> Run on Server”。这实现了热部署/迭代目标,并保持两个系统(IDE 和 Gradle)隔离。但是,您需要在 Eclipse 上设置服务器。
  3. (不是真正的解决方法):我已经测试了 Spring 的 Eclipse 构建(STS)Gradle 集成,但是似乎集成集中在项目设置上,虽然 Gradle 构建可以自动触发,但 Eclipse 编译仍然被重定向到垃圾箱/。

最佳答案

那么您对微调热部署感兴趣,对吧?

请考虑使用 Gretty gradle 插件:https://github.com/akhikhl/gretty

它是一个高级 gradle 插件,用于在 jetty 上运行 Web 应用程序。关于热部署(甚至可能更多),它完全符合您的要求。

披露:我是 Gretty 插件的作者。

关于eclipse - 使用 Gradle+Eclipse 在 Jetty 上启用热部署的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731771/

相关文章:

java - 将一个新项目插入数组的末尾

java - 数组转换为列表错误

maven - 如何禁用使用 Eclipse Jetty Maven 插件运行的 Jetty 的 jsessionid?

java - Jersy/Jetty 服务器未找到 MessageBodyWriter 错误

java - Android 上的 Crosswalk 和 Adob​​e SDK 编译

android - 无法将 Android 项目导入 Eclipse - 完成按钮不执行任何操作

android - 如何控制 Android EditText 对象的大小

gradle - 为什么gradle的buildscript类路径不包含buildSrc?

java - 相同的 jvm 选项,tomcat 和 jetty 的不同 gc 输出

gradle - 在 gradle 复制任务中动态设置文件权限