Как разделить задачу Gradle на чистую компиляцию и чистую задачу выполнения из CLI? - PullRequest
1 голос
/ 09 января 2020

Я работаю над разделением пользовательского тестового задания на фазу сборки и тестирования (я хочу собрать исходники с Java 8 и запустить их с Java 11 без перекомпиляции). Задача определена здесь

Выполнение задачи с флагом -x test не отключает тесты. Я хочу быть в состоянии сделать все это из командной строки, чтобы выполнить задачу как часть задания Дженкинса.

Пока что мне не удалось найти решение, отличное от объединения 5 bash команд и добавления задач из --dry-run в команду ./gradle, а затем исключая их с помощью -x, но я считаю, должен быть более элегантный подход.

Если я пропустил некоторую информацию, необходимую для предоставления ответов, пожалуйста, дайте мне знать, я буду рад вас заполнить.

1 Ответ

0 голосов
/ 10 января 2020

Если я правильно понимаю, то, что вы ищете, это именно то, что плагин Java делает со своими задачами по умолчанию:

  • compileTestJava - это задача, отвечающая за компиляцию тестов.
  • test является задачей, отвечающей за запуск тестов, и она выражает зависимость от compileTestJava

Таким образом, вы бы смоделировали свои задачи таким же образом:

  • Одна задача JavaCompile, настроенная на Java 8, для компиляции тестов.
  • Одна задача Test, настроенная на Java 11, для запуска тестов, с зависимостью от предыдущее задание.

Тогда современная система Gradle должна выполнить свою задачу, то есть запустить задачу Test, только когда задача JavaCompile актуальна.

И чтобы запустить только тестовую компиляцию, вы должны вызвать только соответствующую задачу. Предполагая, что он правильно определяет свои собственные зависимости, он будет делать только то, что требуется.

Если вам нужно более подробное c руководство о том, как определить эти задачи, добавьте дополнительную информацию к вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...