Top*_*era 5 java debugging command-line gradle spring-boot
我想使用 Gradle 在调试模式下启动我的 SpringBoot 应用程序(在我的机器上使用与生产中使用的命令相同的命令)
要启动我的服务器,我使用
$ gradle bootRun
Run Code Online (Sandbox Code Playgroud)
我知道我可以添加一个参数来启动调试模式
$ gradle bootRun --debug-jvm
Run Code Online (Sandbox Code Playgroud)
问题是上面的命令使服务器挂起(直到我连接调试器后服务器才启动)
我可以通过将以下代码添加到 build.gradle 来获得所需的行为,但是,我想使用命令行参数,以避免错误地提交 build.gradle。
bootRun {
jvmArgs(['-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'])
}
Run Code Online (Sandbox Code Playgroud)
注意:如果我添加以下参数,我将调试 gradle 守护进程(或另一个 gradle 事物),而不是我的应用程序,因此它也不是有效的解决方案:
gradle bootRun -Dorg.gradle.jvmargs="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Run Code Online (Sandbox Code Playgroud)
注 2:以下代码不起作用 - 服务器以非调试模式启动
gradle bootRun -Dagentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Run Code Online (Sandbox Code Playgroud)
您基本上是在问如何将变量传递到您的项目。
Gradle 有很多方法可以做到这一点。我更喜欢项目属性方法。
创建一个环境变量,例如:
ORG_GRADLE_PROJECT_debug_jvm=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Run Code Online (Sandbox Code Playgroud)
bootRun {
jvmArgs project.findProperty('debug_jvm') ?: ''
}
Run Code Online (Sandbox Code Playgroud)
另请参阅:将环境变量传递给 gradle.properties
| 归档时间: |
|
| 查看次数: |
2419 次 |
| 最近记录: |