Size: a a a

2020 May 11

VS

Vladimir Sitnikov in Kotlin Moscow
Gradle не специфицирует порядок инициализации проектов (за исключением того, что root всегда конфигурируется первым)
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Alexander Nozik
Таска есть. Резальтата может не быть, но вы делаете зависимость. А зависимость гарантирует, что результаты зависимости будут вычислены до зависимого. В этом весь смысл градла
Откуда таска возьмётся-то?

Порядок project evaluation не определён
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
Gradle не специфицирует порядок инициализации проектов (за исключением того, что root всегда конфигурируется первым)
Инициализация тут не причем. Порядок выполнения еще как специализирует.
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Alexander Nozik
Инициализация тут не причем. Порядок выполнения еще как специализирует.
Таска создаётся в момент применения плагинов.
Порядок «применения плагинов к разным проектам» не определён
источник

AN

Alexander Nozik in Kotlin Moscow
Там используется контейнер для таски, который выполняется на второй фазе конфигурирования
источник

AN

Alexander Nozik in Kotlin Moscow
Порядок применения плагинов - да. Но таски по имени можно вызывать в любой момент. Они не сразу актуализируются.
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Alexander Nozik
Порядок применения плагинов - да. Но таски по имени можно вызывать в любой момент. Они не сразу актуализируются.
Прости, но ты не прав
источник

AN

Alexander Nozik in Kotlin Moscow
Прав. Я на градле несколько бродячих животных съел. И то, что написано совершенно точно работает
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Alexander Nozik
Прав. Я на градле несколько бродячих животных съел. И то, что написано совершенно точно работает
Работает != ты прав
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
Работает != ты прав
Таски по имени резолвятся ленивым образом
источник

AN

Alexander Nozik in Kotlin Moscow
Весь градл на таких зависимостях построен. Если бы их не было, вообще бы межмодульного взаимодействия не было бы.
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Alexander Nozik
Весь градл на таких зависимостях построен. Если бы их не было, вообще бы межмодульного взаимодействия не было бы.
И тут ты снова неправ.

Единственно надёжный способ на текущий момент — это configurations.
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Alexander Nozik
Весь градл на таких зависимостях построен. Если бы их не было, вообще бы межмодульного взаимодействия не было бы.
https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

>Finally, evaluate each Project by executing its "build.gradle" file, if present, against the project. The projects are evaluated in breadth-wise order, such that a project is evaluated before its child projects. This order can be overridden by calling evaluationDependsOnChildren() or by adding an explicit evaluation dependency using evaluationDependsOn(String).
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

>Finally, evaluate each Project by executing its "build.gradle" file, if present, against the project. The projects are evaluated in breadth-wise order, such that a project is evaluated before its child projects. This order can be overridden by calling evaluationDependsOnChildren() or by adding an explicit evaluation dependency using evaluationDependsOn(String).
В данный момент совершенно нет возможности спорить. Мой пример работает в любом случае потому что там обе таски в одном мпп модуле. По поводу примера Ильи можно пойти в @kotlin_js и спросить у него.
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

>Finally, evaluate each Project by executing its "build.gradle" file, if present, against the project. The projects are evaluated in breadth-wise order, such that a project is evaluated before its child projects. This order can be overridden by calling evaluationDependsOnChildren() or by adding an explicit evaluation dependency using evaluationDependsOn(String).
Вот, нашел место в доке:
"The task dependencies declared via task path are supported and cause relevant projects to be configured. Example: someTask.dependsOn(":someOtherProject:someOtherTask")"
источник

AN

Alexander Nozik in Kotlin Moscow
Вызов project(":client") тоже конфигурирует зависимый проект
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Это другое
источник

VS

Vladimir Sitnikov in Kotlin Moscow
someTask(String) да, работает
источник

VS

Vladimir Sitnikov in Kotlin Moscow
а вот project(«другой проект»).tasks(…) — может запросто упасть
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
а вот project(«другой проект»).tasks(…) — может запросто упасть
Надо лезть в доку, но по-моему все-таки выов функции project конфигурирует
источник