使用android studio开发gradle插件(一)

2017-10-30  本文已影响0人  和平菌

目标是使用android studio开发gradle插件来打印hello word

第一步:插件项目

1、首先使用as来创建一个普通Android项目,就是一个空项目,完全没有用
我们的插件项目是一个Module,所以我们创建好项目后不用管,然后File->New->Module->Android Library来创建我们的插件类库。

2、创建好类库以后,把src里面的文件全部删除,然后照着下面的步骤创建一些文件和文件夹:
src目录下创建文件夹main
main目录下创建两个文件夹groovy和resources
resources下创建文件夹META-INF,再在META-INF下创建文件plugin.hello.properties,注意这个plugin.hello

接下来是创建一个package,跟java创建是一样的,是在groovy这个目录下(实际上也就是一层一层的创建文件夹了)
在package里创建一个文件叫PluginImpl.groovy,类似java里面创建类文件,只不过扩展名不一样

  大致是这个结构
Paste_Image.png

这样文件夹和文件就创建好了。

2.编写代码

import org.gradle.api.Plugin
import org.gradle.api.Project

public class PluginImpl implements Plugin<Project> {
    void apply(Project project) {
        project.task('testTask') << {
            println "Hello gradle plugin"
        }
    }
}

大致的意思就是创建了一个task,叫任务也好,方法也行。名字叫testTask,里面的代码就是打印Hello gradle plugin这句话

有点像java代码

3.写配置文件
还记得创建的plugin.hello.properties这个文件吗,这个就是配置文件

implementation-class=[你的包名].gradle.PluginImpl

[你的包名].gradle.PluginImpl 这个就是你写的那个类文件的包名+类名(暂且跟java一样叫类吧)
PluginImpl.groovy 就是这个文件里面的申明

4.上面3步完成以后,插件就算编写完了,这一步要做的是把插件发布到maven,让应用里可以使用,我们把插件发布到本地的maven仓库里。

我在类库项目下创建了一个gradle.properties文件,也就是gradle的配置文件,在里面申明一些常量。

#包信息
ARTIFACTID = helloPulgins
LIBRARY_VERSION = 1.0.0
GROUP_ID = com.hello.gradle.plugin
LOCAL_REPO_URL=file:/D:/service/android-studio-ide-3.0/android-studio/gradle/m2repository

注意这个GROUP_ID和ARTIFACTID的值以后要用的。

然后是类库下的build.gradle文件:

apply plugin: 'groovy'
apply plugin: 'maven'

dependencies {
    compile gradleApi()
    compile localGroovy()
}

repositories {
    mavenCentral()
}


uploadArchives {
    repositories {
        mavenDeployer {
            // 本地仓库路径
            repository(url:LOCAL_REPO_URL)
            pom.groupId = GROUP_ID
            pom.artifactId = ARTIFACTID
            pom.version = LIBRARY_VERSION
        }
    }
}

最终的文件结构如下:

Paste_Image.png

5、进行上传
我们在右边的gradle操作台上看到类库然后根据下面的结构展开

Paste_Image.png

Tasks --> upload --> uploadArchives

双击这个uploadArchives,我们的插件就会发布上传到maven仓库中了。

目标达成。

上一篇下一篇

猜你喜欢

热点阅读