appRun task starts web-app inplace, in interactive mode.


gradle appRun


  1. The web-app gets compiled (if it’s not up-to-date).

  2. Embedded servlet-container starts in separate java process against compiled classes and their dependencies and listens for HTTP-requests on port (default 8080).

  3. Gretty waits for the user keypress.

  4. When user presses any key (in the same terminal), servlet-container process shuts down.

  5. Gretty waits for servlet-container process to complete.

  6. Gradle script continues normal execution of tasks.

Note that this task does not depend on "war" task, nor does it use WAR-file.

Instantiation and extension

The object called appRun is actually an instance of AppStartTask class, created and configured for you by Gretty. You can instantiate or even extend this class on your own:

apply plugin: 'org.akhikhl.gretty'

import org.akhikhl.gretty.AppStartTask

task('MyRun', type: AppStartTask) {
  // ...

class VerySpecialRun extends AppStartTask {
  // ...

task('MyRun2', type: VerySpecialRun) {
  // ...

If you are going to instantiate or extend this task class yourself, make sure you’ve learned it’s properties and methods.


appRun StateDiagram