Как сделать псевдоним для задачи Gradle? - PullRequest
0 голосов
/ 07 февраля 2020

Как часть рабочего процесса TDD, я хочу иметь возможность проверить, компилируется ли моя кодовая база Java, но не проходит ли тесты.

В настоящее время, если я запускаю gradle build, это запускает задачи компиляции (для исходного кода и тестов), а затем также выполняет тестовое задание (и возвращает ненулевой код завершения, поскольку тесты не пройдены).

Поэтому я обнаружил, что мне нужно запустить gradle build -x test для исключите тестовое задание и получите успешный нулевой код завершения.

Что я добавлю к своему build.gradle, чтобы определить новую задачу, скажем compile, которая является псевдонимом для build x test?

Пока у меня есть это, но не похоже, что dependsOn принимает какие-либо аргументы для настройки задачи build, которую я хочу выполнить:

task compile {
    dependsOn build
}

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


Благодаря ответу Бьёрна Вестера и прочтению документации я выполнил свою задачу следующим образом:

task compile {
    dependsOn classes
    dependsOn testClasses
}

1 Ответ

2 голосов
/ 07 февраля 2020

Существует множество различных задач, которые вы можете запускать по отдельности. Например:

  • gradle classes: скомпилирует ваш «основной» код.
  • gradle testClasses: скомпилирует ваш «основной» код, а также тестовый код.
  • gradle jar: скомпилирует ваш «основной» код и сделает его исполняемым.

Ни один из вышеперечисленных не будет запускать ваши модульные тесты. С другой стороны, задача build зависит от всего вышеперечисленного, а также от задачи test и т. Д.

В общем, если вам нравится запускать определенный набор задач, вы делаете это путем определения новой задачи, а затем создания зависимостей от тех других задач, которые вы хотели бы выполнять с ней. Вы уже пробовали это, но вместо build вы должны были использовать что-то вроде compileJava или classes для любых других задач, которые вам нужны. Но всегда проверяйте, нет ли уже того, который удовлетворяет ваши потребности, как в этом случае. О том, какие задачи доступны в Java проектах, можно прочитать в документации к плагину Gradle java .

...