本文主要说明一下自定义Gradle plugin的步骤,在实现一个自定义plugin的时候主要有以下几步:
1,在project下新建一个module,随便选择什么类型,反正最后都要清空,src/main目录。
2,修改moudule下的build.gradle文件改成如下格式
apply plugin:'groovy'
dependencies{
compile gradleApi()
compile localGroovy()
}
3,在main目录下新建文件夹com.test.xxx,在此文件夹下新建文件MyPlugin.groovy,这个文件的内容很简单,如下所示:
package com.hx.plugin
import org.gradle.api.Plugin
import org.gradle.api.Project
public class MyPlugin implements Plugin<Project>{
@Override
void apply(Project project) {
System.out.println ("start ")
System.out.println ("hello my gradle plugin")
System.out.println ("end")
}
}
4,发布到服务器或者本地仓库,
修改module的build.gradle文件,添加maven支持,这个例子是发布到本地maven仓库。修改后的文件如下所示:
apply plugin:'groovy'
apply plugin: 'maven'
dependencies{
compile gradleApi()
compile localGroovy()
}
repositories {
mavenCentral()
}
group = 'com.hx.plugin'
version = '1.0.0'
uploadArchives {
repositories {
mavenDeployer{
//提交到远程服务器:
// repository(url: "http://www.xxx.com/repos") {
// authentication(userName: "admin", password: "admin")
// }
//本地的Maven地址设置为D:/repos
repository(url: uri('E:/develop/repos'))
}
}
}
group指的是群组名,version指的是版本号,后面的uri指的是本地仓库地址。修改完之后,点击Android Studio右边的gradle,找到uploadArchives任务,双击执行,就会在指定的目录生成文件。
5,使用自定义plugin
在plugin生成之后,就可以使用了,首先在project的build.gradle中添加maven仓库的地址。
buildscript {
repositories {
jcenter()
maven {
url uri('E:/develop/repos')
}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.hx.plugin:mylibrary:1.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
url是先前我们指定的仓库地址,classpath是 group +module+版本号,在使用的module的build.gradle中添加
apply plugin: 'com.hx.gradle'
这个plugin的名称就是在resource下的那个properties文件的名称。 到这里一个简单的自定义Gradle plugin就完成了。