美文网首页
Gradle教程系列 ——自定义Gradle插件

Gradle教程系列 ——自定义Gradle插件

作者: nxiangbo | 来源:发表于2018-11-02 21:17 被阅读0次

Gradle 学习

Gradle是一个基于Apache AntApache Maven概念的项目自动化构建工具。它使用一种基于Groovy特定领域语言(DSL, domain-specific language )来声明项目设置,而不是传统的XML。

gradle是一个自动化工具。配置gradle时,使用的是Groovy语言。Groovy的语法与Java类似。

Gradle作为一个异常强大的构建工具,为了满足不同平台的需求,比如:Java平台有Java构建逻辑,Android平台有Android构建逻辑。Gradle务必是要支持自定义构建的,这个功能正是由Gradle Plugin提供,而对应于Android工程的构建逻辑就是由Android Gradle Plugin实现的了。

Gradle插件结构

自定义gradle插件时,既可以使用groovy语言,也可以使用Java或者Kotlin语言。一般我都是使用groovy语言。

自定义插件的目录结构如下:

plugin
└── src
    └── main
    |   ├── groovy
    |   |   └── com
    |   |          └── package
    |   |               └── name
    |   └── resources
    |       └── META-INF
    |           └── gradle-plugins
    |_ build.gradle

由上述插件结构可知,自定义插件大致可分为三个部分。groovy目录,resources目录和build.gradle配置文件。

build.gradle

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

dependencies {
    implementation gradleApi()
    implementation localGroovy()
}

META-INF/gradle-plugins

在META-INF/gradle-plugins 目录下添加一个属性文件,主要用来使得Gradle找到该插件。

implementation-class=com.nxiangbo.plugin.main.CustomPlugin

Groovy 目录

为了创建Gradle插件,我们必须创建一个实现Plugin接口的类。当我们将自定义的插件应用到项目时,Gradle就会创建这个类的实例,并调用这个类的apply()方法。而project作为该方法的参数,因此插件可以使用project的配置。下面我们在groovy目录下创建CustomPlugin.groovy。

 class CustomPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        // TODO
    }
}

发布插件

只需要在build.gradle文件中添加uploadArchives task就可以将插件发布到本地。

afterEvaluate { project ->
    uploadArchives {
        repositories {
            mavenDeployer {
                repository(url: uri('D:/repo'))
            }
        }
    }
}

应用插件

在需要使用该插件的项目中的build.gradle 文件中,添加如下代码

apply plugin: 'customplugin'

customPlugin {
    versionName='version'
    versionCode='1.1.0'
}

Gradle插件调试

首先,在Android Studio 中设置Edit Configurations -> +号 -> Remote -> 填写Host和端口号

gradle调试

然后,运行gradle :app:clean -Dorg.gradle.debug=true --no-daemon

最后,点击调试按钮即可。 image.png

相关文章

  • Gradle自定义插件

    Gradle自定义插件 在Gradle中创建自定义插件,Gradle提供了三种方式: 在build.gradle脚...

  • 自定义Gradle插件

    个人博客http://www.milovetingting.cn 自定义Gradle插件 自定义Gradle插件可...

  • Gradle教程系列 ——自定义Gradle插件

    Gradle 学习 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。...

  • 启用Gradle远程调试

    在Gradle学习10——自定义Gradle插件 这篇文章中介绍了编写插件的几种方式。编写gradle对象插件的实...

  • gradle插件调试

    在Gradle学习10——自定义Gradle插件 这篇文章中介绍了编写插件的几种方式。编写gradle对象插件的实...

  • Gradle 插件

    比如一个自动输出Lint报告的Gradle插件1.自定义Gradle插件的方式Gradle是采用Groovy语言,...

  • Gradle自定义插件详解

    关于gradle插件自定义,发现网上好多的错误教程,总结后的文章,若本文中也有错误,请及时指正 在Gradle中创...

  • Gradle 自定义插件

    Gradle 自定义插件 官方原文 gradle学习官方翻译网站 1.新建项目 配置build.gradle 创建...

  • Gradle系列 (上篇) —Android自定义Gradle插

    一、关于Gradle Android项目的构建过程是通过一系列Gradle插件完成的,而Gradle插件是使用Gr...

  • Gradle 笔记

    参考 stormzhang 的 ANDROID STUDIO 系列教程四--GRADLE基础 gradle简介 简...

网友评论

      本文标题:Gradle教程系列 ——自定义Gradle插件

      本文链接:https://www.haomeiwen.com/subject/ibchxqtx.html