Gradle是一个强大的构建工具,能够给我们的项目带来极大的方便。Gradle插件是用groovy语言编写,而groovy完美兼容java代码,因此对于写java的童鞋来说,只需要很低的学习成本。接下来描述下,如何构建一个自定义的Gradle插件~
项目地址:https://github.com/xyzlf/CustomPlugin
自定义Gradle插件及使用
1、基本准备
1、首先,新建一个Android项目。
2、之后,新建一个Android Module项目,类型选择Android Library。
3、在新建的module中新建文件夹src,接着在src文件目录下新建main文件夹,在main目录下新建groovy目录,resources目录。在groovy目录下面新建包名,增加代码。resources目录下新建文件夹META-INF,META-INF文件夹下新建gradle-plugins文件夹。
这样,就完成了gradle 插件的项目的整体搭建,之后就是小细节了。目前,项目的结构是这样的。
结构如图:
2、修改Module下面的build.gradle(修改上图pluginlib下面的build.gradle)
3、增加自定义插件groovy代码
(1)在groovy目录下,新建包名,如:com.xyzlf.pluginlib。
(2)增加插件代码PluginImpl.groovy及TimeListener.groovy
PluginImpl.groovy
TimeListener.groovy
(3)在resources/META-INF/gradle-plugins/目录下新建一个文件:xyzlf.plugin.time.properties.
注意: xyzlf.plugin.time就是应用的插件名, 如使用的地方引用:apply plugin: 'xyzlf.plugin.time'
内容如下:
将Gradle插件发布到本地仓库
1、填写完上面的插件代码,接下来就是发不到本地仓库了。
2、在项目的根目录下面执行:Windows下执行: gradlew uploadArchives(), Mac下执行: ./gradlew uploadArchives
3、这样,在项目根目录会生成repo文件夹,里面即有我们的插件jar包。
4、使用本地的自定义插件,在项目的 app/build.gradle文件中,引用自定义插件。
5、在项目根目录执行:gradlew clean build 就会出现task的耗时统计。
将Gradle插件上传到jcenter
1、具体步骤其实也简单。
(1)在项目的根目录下面加入上传到jcenter的插件依赖库: CustomPlugin/build.gradle。
(2)在module目录下增加如下内容:
(3)在根目录的local.properties配置你的bintray.user名,及bintray.apikey值。
(4)配置完,在项目根目录下面,执行命令行:
不出意外,应该就上传到jcenter中心了,然后你去 http://bintray.com/ 中增加到jcenter,审核通过后,就能使用了。
(5)使用jcenter依赖:
2、如果对于上传到jcenter有不懂的,也可以参照此文:Android Studio aar上传到jcenter
参考资料
1、如何使用Android Studio开发Gradle插件
2、构建神器Gradle
3、(1) 自定义Gradle插件(一) (2) 自定义Gradle插件(二)
4、(1)美团Android自动化之旅—生成渠道包 (2)美团Android自动化之旅—适配渠道包