我正在做一个gradle项目,其中有一个JavaExec任务,该任务作为构建的一部分运行。正常运行任务时,它是增量的,即当输入/输出未更改时,将跳过任务。由于该项目是使用gradle构建的,因此当我运行我的应用程序时,它将在启动之前构建所需的模块。
在使用标准的“运行”(我将IntelliJ作为我的IDE)时,此方法工作正常,但是,如果我使用“调试”(具有相同的运行配置)启动它,则JavaExec任务始终 >重建,因为jvmArgs中随机分配的'address'属性已更改,尽管输入/输出没有其他更改。
这会将通常的〜5s启动时间(所有任务都是最新的)变为1分钟以上,因为它会重新运行任务。
是否有任何方法可以强制子进程使用的jvm地址,以保留增量构建的好处?
我尝试过:
debugOptions闭包,例如:
debugOptions {
enabled = true
port = 12995
server = true
suspend = false
}
显式设置jvmArgs,例如:
jvmArgs '-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=12995'