Ответ 1
После запуска gradle bootRun --debug-jvm
приложение приостанавливается, пока вы не подключите ваш отладчик к порту, который он прослушивает (порт 5005).
Я работаю над приложением spring и вам нужно пройти через контроллер, чтобы увидеть, как он работает.
Я работаю в eclipse и создаю свое приложение с помощью команды gradle bootRun
.
Как запустить его в режиме отладки?
Я попробовал gradle bootRun --debug
, но он просто отлаживал журнал, а не режим отладки
Я попробовал gradle help --task bootRun
- это дает мне информацию о задаче
там я видел вариант --debug-jvm
, но когда я запускаю
gradle bootRun --debug-jvm
приложение не запускается
После запуска gradle bootRun --debug-jvm
приложение приостанавливается, пока вы не подключите ваш отладчик к порту, который он прослушивает (порт 5005).
В ответ на dankdirkd ответ выше: (сравнить)
gradle bootRun --debug-jvm
сделает сборку Gradle в режиме отладки. Это, вероятно, не то, что вы хотите. Чего вы хотите добиться, так это того, чтобы задача springBoot запускала ваше приложение в режиме отладки.
Задача весенней загрузки расширяет стандартную задачу JavaExec. Вы можете настроить задачу bootRun в вашем файле build.gradle, чтобы добавить конфигурацию отладки следующим образом:
bootRun {
jvmArgs=["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=32323"]
}
Для build.gradle.kts это будет выглядеть так (с отключенным режимом ожидания):
tasks {
val bootRun by getting(BootRun::class) {
jvmArgs=listOf("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=32323")
}
}
Если ваш сервер находится в облаке и вы хотите выполнять отладку с локального компьютера, вам необходимо убедиться, что он разрешает подключения извне. Используйте конфигурацию ниже в этом случае
tasks {
val bootRun by getting(BootRun::class) {
jvmArgs=listOf("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:32323")
}
}
Обратите внимание, что адрес теперь 0.0.0.0:port
вместо просто port
Определите исполняемое приложение Java в дочернем процессе.
task executeApp() {
doFirst {
println "Executing java app from Gradle..."
javaexec {
main = "com.mymain"
jvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=30000"]
}
}
}
Установите свои точки останова в коде Java. После выполнения задачи Gradle. Например, в Windows:
.\gradlew.bat executeApp
Задача ждет, пока вы не подключите отладчик. Например, в Netbeans перейдите в Debug-> Attach debugger, установите 30000 в поле Field.