簡體   English   中英

如何在不暫停服務器的情況下使用 Gradle 命令行參數調試 SpringBoot?

[英]How to debug SpringBoot using Gradle commandline parameter, without suspending server?

我想在調試模式下使用 Gradle 啟動我的 SpringBoot 應用程序(在我的機器上使用與生產中使用的相同命令)

要啟動我的服務器,我使用

$ gradle bootRun

而且我知道我可以添加一個參數以在調試模式下啟動

$ gradle bootRun --debug-jvm

問題是上面的命令使服務器掛起(直到我連接調試器才啟動服務器)

我可以通過將以下代碼添加到 build.gradle 來獲得所需的行為,但是,我想使用命令行參數,以避免錯誤地提交 build.gradle。

bootRun {
   jvmArgs(['-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'])
}

注意:如果我添加以下參數,我將調試 gradle 守護程序(或另一個 gradle 事物),而不是我的應用程序,因此它也不是有效的解決方案:

gradle bootRun -Dorg.gradle.jvmargs="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

注意 2:以下代碼不起作用 - 服務器以非調試模式啟動

gradle bootRun -Dagentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

相關: 如何使用 gradle 調試 spring 應用程序

您基本上是在詢問如何將變量傳遞給您的項目。

Gradle 有很多方法可以做到這一點。 我更喜歡項目屬性方法。

創建一個環境變量,如:

ORG_GRADLE_PROJECT_debug_jvm=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

gradle.build

bootRun {
   jvmArgs project.findProperty('debug_jvm') ?: ''
}

另請參閱: 將環境變量傳遞給 gradle.properties

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM