Ответ 1
Из документов плагина Gradle Java
Это зависимости - это задача проверки и сборки, которую вы можете видеть, иметь свои собственные зависимости
Я искал в документах Gradle, в stackoverflow и некоторых других местах, но я не могу найти информацию о том, что в комплекте с этой задачей в глубину, или я пропустил ее, если так, пожалуйста, укажите мне направление.
java-base
, верно?gradle -q tasks
не говорит об этом много.build - Сборка и тестирование этого проекта.
Выполнение gradle help --task build
показывает подробную информацию, ok - но показывает, где используется задача, в которой включены группы, тип задачи и пути.
Я попытался вручную отслеживать, что с ним происходит, и заметил, компилирует, тестирует и т.д. Задачи.
Я хотел бы знать, что именно происходит из задачи сборки Gradle, каковы зависимости задачи.
Из документов плагина Gradle Java
Это зависимости - это задача проверки и сборки, которую вы можете видеть, иметь свои собственные зависимости
Вы можете использовать плагин дерева задач Gradle, чтобы увидеть зависимости задач
например:
plugins {
id "com.dorongold.task-tree" version "1.3.1"
}
Тогда беги
gradle build taskTree
Выход
:build
+--- :assemble
| \--- :jar
| \--- :classes
| +--- :compileJava
| \--- :processResources
\--- :check
\--- :test
+--- :classes
| +--- :compileJava
| \--- :processResources
\--- :testClasses
+--- :compileTestJava
| \--- :classes
| +--- :compileJava
| \--- :processResources
\--- :processTestResources
Начиная с версии 4.0 вы должны запустить gradle build --console=plain
, чтобы увидеть полный список зависимостей задач.
Если вы используете плагин java-base
, то зависимости:
$ gradle build --console=plain
:assemble
:check
:build
Если вы используете java
(который автоматически применяет java-base
), то зависимости:
$ gradle build --console=plain
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
Чтобы увидеть точную цепочку зависимостей, показанную на картинках выше, я использовал небольшой помощник Perl, который можно запустить внутри проекта Gradle. Создает строку с точкой, описывающую график зависимости:
#/bin/perl
use strict;
my @deps;
my %tasks;
getDeps($ARGV[0]);
printDot();
sub getDeps {
my $task = shift;
$tasks{$task} = "";
chomp(my @subtasks = 'gradle $task');
@subtasks = grep { $_ =~ "^:" } @subtasks;
pop @subtasks;
foreach(@subtasks) {
my ($s) = $_ =~ "^:(.*) ";
push @deps, "$task -> $s;";
if(!defined $tasks{$s}) {getDeps($s)}
}
}
sub printDot {
my $dot = "digraph main {\n";
if(@deps>1) {
foreach(@deps) {$dot .= "$_\n"}
} else {
$dot .= "$ARGV[0];\n";
}
print $dot . "}";
}
Затем выполните следующую команду, чтобы преобразовать вывод в изображение PNG:
$ t=build; perl dependencies.pl $t | tred | dot -T png > $t.png
или текст ASCII:
$ t=build; perl dependencies.pl $t | tred | graph-easy > $t.txt