Vert.x - Hot reloading / Live redeploy

Java Conceptuel Diagram

About

This page is about Hot reload in Vert.x

On matching file changes, the process is stopped and the application is restarted.

Example

Launcher

Vert.x - Launcher class

java io.vertx.core.Launcher run org.acme.MyVerticle --redeploy="**/*.class"  --launcher-class=io.vertx.core.Launcher -cp ...

Vertx command line

Live redeploy with the vertx command of:

vertx run \
    org.acme.verticle.MyMainVerticle \
    --redeploy="src/**/*.java" \
    --launcher-class=io.vertx.core.Launcher
vertx run \
    --redeploy="src/**/*.java" \
    --launcher-class=org.acme.vertx.Main


Groovy:

vertx run MyVerticle.groovy --redeploy="**/*.groovy" --launcher-class=io.vertx.core.Launcher
vertx run MyVerticle.groovy --redeploy="**/*.groovy,**/*.rb"  --launcher-class=io.vertx.core.Launcher

Gradle

Live reload of a Main class

  • Gradle DSL
mainClassName = 'net.bytle.api.Main'
def watchForChange = 'src/main/java/net/**/*'
def doOnChange = './gradlew classes'

run {
  args = ['run', "--redeploy=$watchForChange", "--launcher-class=$mainClassName", "--on-redeploy=$doOnChange"]
}

equivalent to

vertx run  --redeploy=src/**/* --launcher-class=net.bytle.api.Main --on-redeploy="./gradlew classes"
  • Kotling DSL
val runTowerTaskGroup = "runTower"
val runTowerHotReloadTask = "runTowerHotReload"
val vertxLauncher = "io.vertx.core.Launcher"
val watchForChange = "src/main/java/net/**/*"
val doOnChange = "../gradlew classes"
tasks.register<JavaExec>(runTowerHotReloadTask) {
  group = runTowerTaskGroup
  mainClass.set(vertxLauncher)
  args = mutableListOf(
    "run",
    "--launcher-class=$towerLauncher",
    "--redeploy=$watchForChange",
    "--on-redeploy=$doOnChange",
    com.example.MainVerticle
  )
  classpath = sourceSets["main"].runtimeClasspath
  if (project.hasProperty("currentDirectory")) {
    workingDir = File(currentDirectory)
  }
  //dependsOn(processResources)
}

Documentation





Discover More
Java Conceptuel Diagram
Vert.x - The launcher run command

The run command (Code) is a command of the launcher. It will: create a instance...



Share this page:
Follow us:
Task Runner