gradle - Gradle:在调试时使 JavaExec 任务增量
问题描述
我正在开发一个 gradle 项目,其中有一个 JavaExec 任务,该任务作为构建的一部分运行。当正常运行任务时,它是增量的,即当输入/输出没有改变时,任务被跳过。由于该项目是使用 gradle 构建的,因此当我运行我的应用程序时,它会在启动之前构建所需的模块。
这在使用标准的“运行”时工作正常(我使用 IntelliJ 作为我的 IDE),但是如果我使用“调试”启动它(具有相同的运行配置),JavaExec 任务总是重建,作为随机分配的“地址” jvmArgs 中的属性已更改,尽管输入/输出没有其他更改。
这会将通常的约 5 秒启动时间(当所有任务都是最新的)变成 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'
解决方案
推荐阅读
- performance - 打开和关闭图层的最节省资源的方法是什么?
- laravel - 为什么我的模型在创建或更新后没有触发某些事件
- javascript - 通过编辑文件通过 Node.js 更改 JSON 中的对象值
- c++ - 错误:“新”不能出现在常量表达式中
- angularjs - 使用方法 Post AngularJs 时出错
- java - 跳过一个 Maven 测试不起作用
- powershell - 通过电子邮件发送 foreach 输出
- javascript - OpenLayer 加载带有初始标记的地图
- java - SQLiteAssetHelper - 如何使用 AssetHelper 将新数据插入现有数据库?
- angular - 角度共价数据表行高适合