目标是使用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.png5、进行上传
我们在右边的gradle操作台上看到类库然后根据下面的结构展开
Tasks --> upload --> uploadArchives
双击这个uploadArchives,我们的插件就会发布上传到maven仓库中了。
目标达成。
网友评论