Gradle:在调试时使JavaExec任务递增

时间:2020-01-24 16:51:31

标签: gradle

我正在做一个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'

0 个答案:

没有答案