gradle自定义插件与上传本地仓库
来源:互联网 发布:node.js怎么循环输出 编辑:程序博客网 时间:2024/06/05 16:59
gradle自定义插件与上传本地仓库
DEMO地址:https://github.com/zhaopingfu/listener20
1、使用特殊目录buildSrc目录(工程根目录下创建)
buildSrc这个目录是一个特殊的目录,在这个目录里groovy自动帮我们引入了groovy和java api如果工程中存在buildSrc,在执行编译任务的时候,首先执行的是buildSrc的一系列的clean,编译,组装也就是说在编译之前就会之前无论我们有多少模块,在执行任何任务的时候,都会执行buildSrc在buildSrc中编写的,能够作用在所有的子模块中
首先在android项目根目录中创建buildSrc文件夹
创建src/main/groovy/Plugin1.groovy
import org.gradle.api.Pluginimport org.gradle.api.Projectclass Plugin1 implements Plugin<Project> { @Override void apply(Project project) { println 'plugin1' }}
之后在app下的build.gradle中直接引入
apply plugin: Plugin1
2、直接在build.gradle中编写插件或者在app下直接写插件文件,然后引入
可以直接在app下的build.gradle中写
class A implements Plugin<Project>{ @Override void apply(Project target) { }}
也可以在其他文件中写,比如app目录下新建一个文件:plugin.gradle里面写
import org.gradle.api.Pluginimport org.gradle.api.Projectclass Plugin2 implements Plugin<Project> { @Override void apply(Project project) { println 'plugin2' }}
之后在app下的build.gradle中引入:
apply from:'plugin.gradle'
3、本地仓库
本地仓库路径:C:\Users\Administrator.m2\repository
可以先在AndroidStudio中创建一个module(java library)
1、首先在build.gradle中引入依赖
apply plugin: 'java'apply plugin: 'groovy'dependencies { compile gradleApi() compile localGroovy() compile fileTree(dir: 'libs', include: ['*.jar'])}sourceCompatibility = "1.7"targetCompatibility = "1.7"//classpath 'com.pf.plugin:plugin:1.0.0'//group是第一段//version是第三段group 'com.pf.plugin'version '1.0.0'apply plugin: 'maven-publish'publishing { publications { plugin(MavenPublication) { from components.java //classpath 'com.pf.plugin:plugin:1.0.0' //下面这个指定的就是第二段的名字,如果不设置,默认就是程序名 //如果不指定,默认就是工程名 artifactId 'plugin' } }}
2、在main目录下创建groovy文件夹,在里面创建com.pf.plugin.Plugin3.groovy
package com.pf.pluginimport org.gradle.api.Pluginimport org.gradle.api.Projectclass Plugin3 implements Plugin<Project> { @Override void apply(Project project) { println 'plugin3=======' }}
3、 在main目录下创建resources文件夹,在里面创建META-INF/gradle-plugins/com.pf.plugin.properties
里面就写一句话implementation-class=com.pf.plugin.Plugin3注意:com.pf.plugin.properties这个名字,就是将来apply的那个名字 apply plugin: 'com.pf.plugin'就是这个名字
4、上传到本地仓库
先将项目同步一下,然后在右边的gradle选项中:plugin:Tasks:publishing,里面有四个任务,其中有个叫做publishPluginPublicationToMavenLocal,这个就是上传到本地仓库,双击执行任务,执行成功后会在本地看到本地仓库路径:C:\Users\Administrator\.m2\repository里面会看到刚才上传的插件
5、项目中引入插件
在项目的app模块下的build.gradle中加入引用apply plugin: 'com.pf.plugin' buildscript { repositories { mavenLocal() } dependencies { classpath 'com.pf.plugin:plugin:1.0.0' } }在terminal中执行 gradlew assembleDebug在日志中会看到 输出了"plugin3=======",说明插件引用成功了
总结
apply plugin: 'com.pftest.plugin'这个名字是resources下的com.pftest.plugin.properties这个名字buildscript { repositories { mavenLocal() } dependencies { classpath 'com.pftest.plugin:plugin21:1.0.0' 这里的三段内容是 group 'com.pftest.plugin' artifactId 'plugin21' version '1.0.0' }}
DEMO地址:https://github.com/zhaopingfu/listener20
- gradle自定义插件与上传本地仓库
- 使用gradle上传jar到maven本地仓库
- gradle 像maven一样自定义本地仓库地址
- gradle本地、远程仓库配置
- Android Gradle上传Maven仓库
- Git上传项目至远程仓库与同步到本地
- 【github】上传本地代码仓库
- 本地仓库上传到github
- 上传本地jar包到私服仓库
- 上传本地项目到仓库
- Gradle自定义插件
- Gradle自定义插件
- 自定义gradle插件
- 自定义gradle插件
- Gradle自定义插件
- 自定义gradle插件
- Gradle自定义插件详解
- 自定义Gradle插件
- bios 中reboot的实现
- LeetCode 5. Longest Palindromic Substring
- Spring学习笔记(四)-----AOP
- python(4) list生成式
- 类与对象练习一 :请定义一个交通工具(Vehicle)的类
- gradle自定义插件与上传本地仓库
- left join、right join、inner join的区别
- 关于http请求的一些知识
- Timer
- JAVA基础--关键字 final 、static、this、super
- 把c语言注释转换为cpp注释
- makefile变量的定义
- HBase CoProcessor介绍以及使用
- 集中序列化的方式