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<Project> {
    
        @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任务,将我们的插件发布到仓库,如下图:


    双击编译上传插件
  • 然后我们在/Users/macbook/Desktop/maven_repos路径下,就能看到生成的插件了,如下图:


    仓库里的插件

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


    父build.gradle配置,引入插件
  • 然后再我们的app module下,引入要使用的插件,:

引入插件
  • 运行项目,就能看到自定义插件的 打印信息
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容