我们在使用 IntelliJ 设置 Vert.x 以在开发过程中自动重新加载类时遇到了一些问题。我们使用了他们的文档中描述的“最佳实践”方法(使用 maven),但无法让自动重新部署工作。
重现步骤:
- 使用
mvn archetype:generate -Dfilter=io.vertx:
创建您的项目 - 执行
mvn idea:idea
创建IntelliJ项目 - 在IntelliJ中打开
.ipr
文件 - 确保将项目设置设置为
Preferences -> Compiler -> Make Project Automatically
- 确保
"auto-redeploy": true
在资源文件夹的mod.json
中设置 - 首次构建项目:
CMD + Fn + F9
(CMD + F9
如果您使用媒体键作为功能键) - 从 Maven 面板(或从命令行)运行
vertx:runMod
此时应用程序启动(当检查 target/mods
文件夹时,它似乎确实创建了模块)。但是,对 PingVerticle
类进行更改并保存结果完全没有任何反应。此外,没有资源被复制过来,所以当启动一个简单的网络服务器时,它总是导致“找不到资源”。 vertx_classpath.txt
包含包含资源的所有目录。
我还发现,当向您的 pom 添加外部依赖项时,这些依赖项不会复制到模块中,并且会导致类未找到异常。
我们是否在设置过程中遗漏了什么?谢谢。
最佳答案
这似乎是一系列不幸事件的结合。很久以前,我们不得不使用特定版本的 Maven (3.0.5) 和特定版本的 Java (1.7u45)。我不记得为什么,可能与我们正在处理的生产系统有关。然而,在更新所有内容(Maven 3.2.1 和 Java 1.8.0)并删除旧路径之后,一切都按预期工作。
更新
实际上,问题出在项目路径中有空格。删除它解决了一切。
关于java - Vert.x 2 和 IntelliJ 自动重新部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23213230/