Android 自定义Plugin 简单了解

一般分两种,第一种紧 本项目使用;第二种 发布出去引用

一. 仅本项目使用

  • 新建一个java library 名称必须为 buildSrc,这个名称会自动加入编译,所以仅限本项目使用

  • 只保留src/main和gradle文件,其他全部删除

  • 修改gradle文件如下:

    apply plugin: 'groovy'
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation gradleApi()
        implementation localGroovy()
    }
    
    sourceCompatibility = "7"
    targetCompatibility = "7"
    
  • 在src/main路径下,新建groovy目录,并创建一个自己的包名和自定义plugin类,例如,我新建的com.zm包 和 RemoteDemoPlugin类,如下

    package com.zm
    
    import org.gradle.api.Plugin
    import org.gradle.api.Project
    
    class RemoteDemoPlugin implements Plugin {
    
        @Override
          void apply(Project project) {
            System.out.println("testestestestestestes 1u394e238r8234848rewrewr748237847343")
        }
     }
    
  • 在src/main路径下,新建resources/META-INF/gradle-plugins,然后新建properties配置文件,这里的配置文件的名称以后要有用,例如,我新建的 DemoDemoPlugin.properties,如下:

    implementation-class=com.zm.RemoteDemoPlugin
    
  • 然后clean,build项目,就可以看到输出日志了

二.发布,引用

  • 新建一个java library 名称随意,例如我新建的叫 DemoPlugin

  • 只保留src/main和gradle文件,其他全部删除

  • 修改gradle文件如下:

    apply plugin: 'groovy'
    apply plugin: 'maven'
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation gradleApi()
        implementation localGroovy()
    }
    
    group = 'com.zhaoyan.plugin.remote'
    version = '4.0.0'
    
    uploadArchives{
        repositories {
            mavenDeployer{
                repository(url: uri('/Users/macbook/Desktop/maven_repos'))
            }
        }
    }
    sourceCompatibility = "7"
    targetCompatibility = "7"
    #这里配置好发布的环境,所以引入了maven插件,定义了发布的 自定义组名(com.zhaoyan.plugin.remote) 和 版本号(4.0.0),
    #还有发布到的仓库路径(/Users/macbook/Desktop/maven_repos)
    
  • 在src/main路径下,新建resources/META-INF/gradle-plugins,然后新建properties配置文件,这里的配置文件的名称以后要有用,例如,我新建的 DemoDemoPlugin.properties,如下:

    implementation-class=com.zm.RemoteDemoPlugin
    #这里的com.zm.RemoteDemPlugin,指向的是我们的自定义插件
    
  • 定义完后,编译,运行uploadArchives任务,将我们的插件发布到仓库,如下图:


    Android 自定义Plugin 简单了解_第1张图片
    双击编译上传插件
  • 然后我们在/Users/macbook/Desktop/maven_repos路径下,就能看到生成的插件了,如下图:


    Android 自定义Plugin 简单了解_第2张图片
    仓库里的插件

    -然后我们在父工程project下的build.gradle下,引用我们的仓库和插件,如下:


    Android 自定义Plugin 简单了解_第3张图片
    父build.gradle配置,引入插件
  • 然后再我们的app module下,引入要使用的插件,:

引入插件
  • 运行项目,就能看到自定义插件的 打印信息

你可能感兴趣的:(Android 自定义Plugin 简单了解)