关于 Gradle 执行 main-class

用application插件,或使用JavaExec任务

传递jvm option用jvmArgs属性,示例如下:

1
2
3
4
5
6
7
8
task execute(type:JavaExec) {
//only for projects do not have "main" classes but use default starters
if(project.hasProperty('mainClassName')) {
main = mainClassName
classpath = sourceSets.main.runtimeClasspath
jvmArgs = ["-agentlib:jdwp=transport=dt_socket,address=31843,suspend=n,server=y", "-Dgreeting=hello"]
}
}

调试gradle启动的程序:

GRADLE_OPTS环境变量只是把给定的参数传递给gradle,没有传递给要执行的main-class。比如要调试程序,用GRADLE_OPTS是没用的,我们不调试gradle,我们需要调试的是main-class,故需要用jvmArgs

两个参考链接