Search code examples
javaintellij-ideagradlevert.xredeploy

Vert.x fails to "Run your module and see your changes immediately"


I am working with the Vert.x Gradle template hosted at the Vert.x Github space.

The build file suggests that there is a runModIDEA target that runs IDEA-built class files so that rebuild/redeploy is not required to pick up changes:

runModIDEA - run the module from the project resources in IDEA. This allows you to run the module without building it
first!

... yet the task does not exist per ./gradlew tasks.

I am not tied to this particular build task per se.

I just want a working auto-redeploy solution that enables me to see updates without a two minute rebuild/redeploy cycle.

EDIT: I also tried running it directly, pointing to InteliJ IDEA output classpath. It works fine, but doesn't pick up changes.

vertx runmod com.mycompany~vert-x-reverse-proxy~1.0.0-final -c conf.json -cp out/production/vert-x-reverse-proxy

EDIT: I also tried ./gradlew runmod -m, first changing vertx_classpath.txt so that the IDEA files (out/production) are looked at first. Still no redeploy. In fact, while it was running, I deleted the out directory and it continued working.

EDIT: I also tried vertx run com.mycompany.myproject.ReverseProxyVerticle -c conf.json -cp out/production/vert-x-reverse-proxy... same results. It ran as expected but did not pick up changes. Only way to pick up changes was to gradlew clean and re-assemble.

EDIT: I have been through these instructions as well.


Solution

  • For anyone who stumbles upon this question, I had the same problem and managed to fix it by deleting everything under the /mods folder in the /target directory. This is in fact mentioned in the vertx documentation - though maybe could be a little more emphatic. Once everything under /mods is removed, start up the application and it redeploys whenever anything is changed.