buildSrc
的Gradle构建。这些插件应用其他插件。例如,我们的插件应用com.android.tools.build:gradle
。对于注解处理,该库需要在编译期间出现在Gradle的类路径中。所以,将其放在我们主要的build.gradle
中可行:buildscript {
repositories {
google()
}
dependencies {
classpath "com.android.tools.build:gradle:$gToolsVersion"
}
}
然而,这意味着用户要应用此插件必须(1)应用我们的插件并且(2)添加buildscript
样板文件。这似乎是不必要的。我们也可以在我们的插件内部添加一个project.buildscript
块,但是由于这个bug,这也似乎是不必要的:https://developer.android.com/studio/build/gradle-plugin-3-0-0.html?utm_source=android-studio#known_issues。
我将com.android.tools.build:gradle
依赖项作为runtime
依赖项添加到buildSrc/build.gradle
中。这似乎应该可以工作:我认为这告诉Gradle,为了运行我的插件,该库(及其依赖项)需要在类路径上。然而,gradle buildEnvironment
(以及我们的构建失败事实)表明情况并非如此。
所以,问题:
buildSrc/build.gradle
指定的runtime
依赖项和常规build.gradle
中buildscript
块中指定的classpath
依赖项有什么区别?- 我该如何安排事情,以便用户可以从
buildSrc
应用插件,并且不必也添加buildscript
块到他们的build.gradle
中?