![](/img/trans.png)
[英]How to specify gradle version for subprojects or app level build.gradle
[英]How to add a javadoc task to Android Gradle subprojects from the root build.gradle file?
我有一個包含多個android項目的工作區,如下所示:
所有項目都使用gradle進行編譯。
我可以使用以下代碼添加指令以在Android應用和lib上生成javadoc:
applicationVariants.all {...}
or
libraryVariants.all { variant ->
println variant
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
description "Generates Javadoc for $variant.name."
source = variant.javaCompile.source
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.linksOffline("http://d.android.com/reference", "${android.sdkDirectory}/docs/reference");
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
}
我想要的是將該指令從根項目中的build.gradle文件添加到所有子項目中。
我相信這將使用subprojects {}
指令,但是在配置過程之后,我不知道如何在該指令中運行代碼,而且我也不知道如何檢測我的應用程序是否是庫。
實際上,我成功使用了subprojects {}
指令。
關鍵是使用afterEvaluate {}
,所以我可以使用android gradle插件添加的android屬性。
這是我結尾的代碼:
subprojects{
afterEvaluate { project ->
if(project.hasProperty('android')){
if(project.android.hasProperty('libraryVariants')) {
project.android.libraryVariants.all { variant ->
println variant
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
description "Generates Javadoc for $variant.name."
source = variant.javaCompile.source
ext.androidJar = "${project.android.sdkDirectory}/platforms/${project.android.compileSdkVersion}/android.jar"
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.linksOffline("http://d.android.com/reference", "${project.android.sdkDirectory}/docs/reference");
exclude '** /BuildConfig.java'
exclude '** /R.java'
}
}
}
else if (project.android.hasProperty('applicationVariants')){
project.android.applicationVariants.all { variant ->
println variant
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
description "Generates Javadoc for $variant.name."
source = variant.javaCompile.source
ext.androidJar = "${project.android.sdkDirectory}/platforms/${project.android.compileSdkVersion}/android.jar"
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.linksOffline("http://d.android.com/reference", "${project.android.sdkDirectory}/docs/reference");
exclude '** /BuildConfig.java'
exclude '** /R.java'
}
}
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.