Android Plugin DSL Reference 参考文档 :
在 Gradle 面板 中的 自定义 Gradle 插件的 Module 模块 下 , 有 documentation 任务分组 , 其中有
两个 Gradle 任务 ;
这两个任务是 build.gradle 构建脚本 中 ,
plugins {
id 'java-library'
id 'kotlin'
id 'groovy'
}
中 ‘java-library’ 插件 和 ‘groovy’ 插件 自带的 Gradle 任务 , 执行这两个任务 , 就会得到对应的文档 ;
在该 自定义 Jar 类型的 Gradle 任务 中 , 将源码打包到 jar 包中 ;
源码如下 :
// 自定义文档打包任务
// 自定义 Jar 类型的 Gradle 任务
// 将文档打包到 jar 包中
task document2Jar(type: Jar) {
// 指明要打的 jar 包名称
// 最终打包的名称是 plugin-0.1-doc.jar
baseName 'plugin'
// 指定分类器 , 与其它 jar 包进行区分
classifier 'doc'
// 设置打包哪些文件
// 这里设置的是 javadoc 和 groovydoc 任务的输出目录
from javadoc.destinationDir, groovydoc.destinationDir
}
由于上述任务需要用到 javadoc 和 groovydoc 任务的输出目录 , 因此需要依赖于 javadoc 和 groovydoc 任务 ;
在自定义 Gradle 任务的 构造函数中 , 添加 dependsOn: [javadoc, groovydoc]
参数 , 最终的源码如下 :
// 自定义文档打包任务
// 自定义 Jar 类型的 Gradle 任务
// 将文档打包到 jar 包中
task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) {
// 指明要打的 jar 包名称
// 最终打包的名称是 plugin-0.1-doc.jar
baseName 'plugin'
// 指定分类器 , 与其它 jar 包进行区分
classifier 'doc'
// 设置打包哪些文件
// 这里设置的是 javadoc 和 groovydoc 任务的输出目录
from javadoc.destinationDir, groovydoc.destinationDir
}
同步代码 , 同步完之后 , 发现在 Gradle 面板 中已经存在该任务 ;
在 Gradle 面板 执行 document2Jar 任务 , 或者在 Terminal 面板中执行
gradlew document2Jar
命令 , 即可执行上述 Gradle 任务 ;
由于设置了依赖 , dependsOn: [javadoc, groovydoc]
, 首先执行的是 groovydoc 任务 , 然后执行 javadoc 任务 , 最后执行 document2Jar 任务 ;
执行完毕后 , 在该模块的 build/libs 目录 下 , 生成了 plugin-0.1-doc.jar 封装文档的 Jar 包 ;