2016-06-02 2 views
1

Я делаю некоторые эксперименты по ниже Gradle многоступенчатой ​​структуры проектаПонимание Gradle несколько проектов build.gradle порядок выполнения

enter image description here

я добавил Println во всех build.gradle & settings.gradle файлов увидеть в каком порядке они выполняются. Я вижу, что Projecta -> Файл build.gradle выполняется после того, как его подпроектов pA1-> build.gradle, как показано на выходе ниже

enter image description here

Я не понимая, почему projectA-> build.gradle выполняется после его подпроектов? Если он не выполнит перед своим подпроектом, как и файл build.gradle в корне.

место на проекте Multi project sample

ответ

0

Во-первых, поставить голую println строку в ваших build.gradle файлов не дает вам порядок выполнения. На этапе конфигурации вызывается println, поэтому если вы посмотрите на заказ конфигурации.

Если вы хотите, чтобы исследовать порядок выполнения добавить задачу с тем же именем для всех ваших build.gradle файлов, может быть что-то вроде этого:

task action << { 
    println("In project: ${project.name}") 
} 

, а затем запустить gradle action из корневой папки.

+0

Sp Я добавил вышеприведенный фрагмент проекта во весь проект в корневом проекте. Когда я его выполню, я вижу вывод, подобный этому http://imgur.com/RCKhbZY. Кроме того, во время фазы конфигурации, почему дочерний подмодуль будет настраиваться перед родителем? Не следует настраивать родительский элемент перед дочерним элементом. – prashant

Смежные вопросы