Итак, как я понял, classpath
также является ключевым словом
Это неверно. classpath
, compile
, implementation
, api
и многие другие являются конфигурациями . Конфигурации в Gradle имеют древовидное значение, как правило, каждая из которых простирается от некоторого родителя:
![configuration tree](https://i.stack.imgur.com/yRb2u.png)
Источник: https://docs.gradle.org/current/userguide/java_library_plugin.html#sec: java_library_configurations_graph
Например, используя implementation
конфигурацию , когда вы делаете следующее в build.gradle
:
dependencies {
implementation("org.apache.commons:commons-lang3:3.9")
}
Вы на самом деле делаете:
project.getDependencies().add("implementation", "org.apache.commons:commons-lang3:3.9")
В первом используется Gradle DSL , в то время как в последнем напрямую используется API Gradle.
Если ключевое слово classpath
просто устарело как compile
one, почему он отсутствует в документах?
compile
конфигурация устарела, как отмечено здесь . Конфигурация classpath
все еще используется, но обычно используется только с блоком buildscrpt { }
.
Для вашего примера:
buildscript {
dependencies {
classpath("com.android.tools.build:gradle:3.4.1")
}
}
Desugars для:
project.getBuildscript().getDependencies().add("classpath", "com.android.tools.build:gradle:3.4.1")