Я работаю над проектом gradle, где у меня есть задача JavaExe c, которая выполняется как часть сборки. При выполнении задачи обычно она является инкрементной, то есть когда входы / выходы не изменились, задача пропускается. Поскольку проект построен с использованием gradle, при запуске приложения оно создает необходимые модули перед запуском.
Это прекрасно работает при использовании стандартного «Выполнить» (я использую IntelliJ в качестве своей IDE), однако, если я запустите его с помощью «Отладка» (с той же конфигурацией выполнения), перестроит JavaExe c task всегда , так как случайно назначенное свойство address в jvmArgs изменилось, несмотря на то, что никакие другие изменения во входных данных не изменились /outputs.
Это превращает обычное время запуска ~ 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'