Vert.x+Kotlin+Gradle热部署失效问题求助
Vert.x Kotlin Web示例热部署不生效问题解决
看起来你遇到的是Windows环境下Vert.x热部署的命令适配问题,日志里的'.' is not recognized as an internal or external command是关键线索——Vert.x默认的重新部署命令用了Unix/Linux风格的写法,Windows系统无法识别,导致实际没有重新编译并运行新代码。
给你几个可行的解决方案:
1. 修正重新部署的命令(最核心的解决方法)
打开项目的build.gradle文件,找到run任务的配置块,添加JVM参数指定Windows下的正确启动命令:
run { // 保留原有的其他配置(比如mainClassName等) jvmArgs = ['-Dvertx.redeploy.command=gradlew.bat run'] }
默认情况下Vert.x会用./gradlew run来重新部署,Windows下需要换成gradlew.bat run,这个参数就是告诉Vert.x用正确的Windows命令来重启应用。
2. 手动指定源码监控路径
日志里显示监控的是.\out目录(编译后的输出目录),有时候源码变更后编译任务没自动触发,导致输出目录没有更新。可以在启动时指定监控源码目录:
gradlew run -Dvertx.watch.paths=src/main/kotlin
这样Vert.x会直接监控你的Kotlin源码文件,一旦检测到变更,会先触发编译再重新部署。
3. 强制重新部署前先编译
如果上面的方法还是有问题,可以让重新部署命令先执行编译任务再启动应用,修改build.gradle的run配置:
run { jvmArgs = ['-Dvertx.redeploy.command=gradlew.bat compileKotlin run'] }
这样每次重新部署时,都会先执行compileKotlin任务确保代码被重新编译,再启动应用。
验证步骤
- 保存修改后的
build.gradle文件 - 停止当前正在运行的
gradlew run进程 - 重新执行
gradlew run启动应用 - 修改你的主类代码,观察日志:
- 应该看不到
'.' is not recognized的错误 - 会看到
compileKotlin任务被执行的日志 - 重新部署完成后,测试接口就能看到新代码的效果了
- 应该看不到
内容的提问来源于stack exchange,提问作者Rick Lee
相关产品推荐
相关产品推荐

