首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android gradle入门指引

本文由三七原创,转载前务必联系三七。

首先祝大家元宵节快乐!本文主要讲了个Gradle入门的demo,后面会陆续更新Android Gradle插件的编写,废话不多说,直接开始吧!

自定义gradle插件

配置目录

项目根目录下新建buildSrc目录。跟app module平级。然后新建如下的文件和目录。

apply plugin:'com.jady.plugin'

groovy目录下的包名也可以自定义,这里面主要存放groovy代码文件。

目录建好之后,在项目根目录的settings.gradle中添加':buildSrc',将buildSrc设置为项目的一个module。

编辑buildSrc中的build.gradle文件。

buildSrc/build.gradle

apply plugin:'groovy'

apply plugin:'maven'

dependencies{

compilegradleApi()

compilelocalGroovy()

}

repositories{

mavenCentral()

}

编写插件并运行

packagecom.jady.gradle

importorg.gradle.api.Plugin

importorg.gradle.api.Project

classHelloWorldimplementsPlugin

{

voidapply(Project project){

project.task('hello'){

doLast{

println'Hello World'

}

}

}

}

如果不熟悉 groovy 语法,可以参考文末参考文献中的精通 Groovy,这个教程虽然老,但是真的好,一步一步带领读者入门 groovy 。

然后在appmodule 的build.gradle文件中应用插件:

apply plugin:'com.jady.plugin'

sync 工程后,可以在:app->Tasks->other中看到我们刚刚定义的 taskhello。

双击hello,可以看到控制台打印了Hello World。

接下来我们开始编写Extension和Task。Extension用于定义属性,与build.gradle配置的属性对应。

CustomExtension.groovy

CustomTask.groovy

HelloWorld.groovy

packagecom.jady.gradle

importorg.gradle.api.Plugin

importorg.gradle.api.Project

classHelloWorldimplementsPlugin

{

voidapply(Project project){

project.extensions.create("custom",CustomExtension)

project.tasks.create("hello",CustomTask)

}

}

在HelloWorld.groovy中,“custom”对应build.gradle文件中配置的自定义信息名字,“hello”对应task列表中的hellotask。

build.gradle

apply plugin:'com.jady.plugin'

...

custom{

message='hello gradle plugin'

version=1

}

sync 一下,重新执行hello,可以发现控制台输出的变化了,如果有问题,请仔细检查下是不是哪一步做错了。

打包插件

我们先发布插件到本地仓库。

首先,编辑buildSrc/build.gradle文件。

buildSrc/build.gradle

apply plugin:'groovy'

apply plugin:'maven'

dependencies{

compilegradleApi()

compilelocalGroovy()

}

repositories{

mavenCentral()

}

group='com.jady.gradle'

version='0.1.0'

archivesBaseName='customPlugin'

uploadArchives{

repositories{

mavenDeployer{

repository(url:uri('../repo'))

}

}

}

sync 一下工程,应该可以发现 gradle 任务列表中的:buildSrc下多了一个upload任务,运行里面的uploadArchives任务,可以发现在项目根目录下生成了repo文件夹,这个就是本地的仓库。

然后,修改项目根目录的build.gradle文件。

再次 sync 一下工程,然后运行gradle任务列表中的hello任务。

此时groovy文件的类名会提示错误,已存在同名文件,那是因为生成了库文件,删掉 buildSrc 下的 build 文件夹就好了,也可以不删,不影响开发。

学到这里,Gradle插件开发就算是入门了,如果你想了解更多,请参阅文末参考文献中的Writing Custom Plugins。

Demo下载

GradlePluginDemo

参考文献和相关资料

[2] Andrew Glover. 精通 Groovy[OL].https://www.ibm.com/developerworks/cn/education/java/j-groovy/j-groovy.html. 2008-4-21.

[3] Google. Android gradle配置构建.https://developer.android.com/studio/build/index.html.

[4] Google. Android gradle插件指南.http://google.github.io/android-gradle-dsl/current/.

[5] Gradle. Writing Custom Plugins.https://docs.gradle.org/current/userguide/custom_plugins.html.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180302G0GYK600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券