Если я правильно понимаю, то, что вы ищете, это именно то, что плагин Java делает со своими задачами по умолчанию:
compileTestJava
- это задача, отвечающая за компиляцию тестов. test
является задачей, отвечающей за запуск тестов, и она выражает зависимость от compileTestJava
Таким образом, вы бы смоделировали свои задачи таким же образом:
- Одна задача
JavaCompile
, настроенная на Java 8, для компиляции тестов. - Одна задача
Test
, настроенная на Java 11, для запуска тестов, с зависимостью от предыдущее задание.
Тогда современная система Gradle должна выполнить свою задачу, то есть запустить задачу Test
, только когда задача JavaCompile
актуальна.
И чтобы запустить только тестовую компиляцию, вы должны вызвать только соответствующую задачу. Предполагая, что он правильно определяет свои собственные зависимости, он будет делать только то, что требуется.
Если вам нужно более подробное c руководство о том, как определить эти задачи, добавьте дополнительную информацию к вопросу.