По сути, я думал, что смогу с этим API создать объект Project из файла build.gradle, а затем программно перемещаться по нему по коду java для проверки задач, зависимостей и т. Д.
publi c Gradle API предназначен для взаимодействия с:
Вы никогда (насколько я знаю) не создадите ни один из них программно. Они создаются для вас, как только вы вызываете ./gradlew
.
Gradle's TestKit позволяет вам создать Project
экземпляр, но, как следует из названия, он предназначен для тестов * Только 1038 *.
Я путаюсь с тем, что большую часть того, что я вижу в этой библиотеке, это интерфейсы, и нет никакого способа создать этот экземпляр Project (по крайней мере, я не смог его найти). Не уверен, что все эти интерфейсы и затем используются внутри Gradle и не предназначены для использования, как я намерен.
Вы реализуете интерфейс Plugin<T>
для того, что вы хотите настроить , T
API-интерфейсы Project
, Settings
или Gradle
.
Publi c обычно имеют следующее соглашение о пакете: org.gradle.api.*
. Это те, которые вы должны стремиться использовать всегда. Как вы их используете, обычно задокументировано где-то в разделе Авторских сборок Gradle Авторских сборок Gradle: https://docs.gradle.org/current/userguide/userguide.html
Как правило, для самых простых плагины, вы будете взаимодействовать только с:
Private API, как правило, имеют следующее соглашение о пакете: org.gradle.api.internal
. Как правило, вы должны избегать использования этих API, если у вас нет конкретной причины c. Именно в этих API-интерфейсах экземпляры Project
, Settings
и Gradle
создаются за кулисами программно.
Можно ли осуществлять навигацию по этому объекту программно?
Да. Реализуйте вышеуказанный интерфейс Plugin<T>
для объекта, с которым вы будете взаимодействовать. Затем примените плагин к вашему проекту.