Executar o aplicativo em Debug do Gradle

Digamos que você tenha um aplicativo desenvolvido com Gradle e implantado de forma independente (por exemplo, usando o plug-in de aplicativo Gradle). Um ótimo exemplo desse caso de uso é um servidor HTTP construído no Netty, em oposição ao uso da API Servlet.

Você deseja depurar o aplicativo. Como não está sendo executado em um contêiner, o mecanismo padrão de depuração via Jetty não está disponível para você.

Uma solução é aumentar sua tarefa JavaExec com outra tarefa que permitirá a execução do processo de depuração. Basta adicionar algo semelhante ao seguinte em seu build.gradle:

task(runDebug, dependsOn: 'classes', type: JavaExec) {
main
= "com.mything.server.HttpServer"
classpath
= sourceSets.main.runtimeClasspath
jvmArgs
= ["-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"]
}

E BAM, você está de partida para as corridas na porta 5005!