appRunDebug starts web-app inplace, in debug and interactive mode.


gradle appRunDebug


  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.
    important: Upon start, the process is in suspended-mode and listens for debugger commands on port 5005.

  3. Upon resume, servlet-container process starts listening for HTTP-requests on port (default 8080).

  4. Gretty waits for the user keypress.

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

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

  7. 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 appRunDebug 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.


appRunDebug StateDiagram

See also: Debugger support.