美文网首页
build.gradle 配置升级包含自定义插件

build.gradle 配置升级包含自定义插件

作者: KennGM | 来源:发表于2023-04-12 15:23 被阅读0次

以前我们的build.gradle配置,一般是以下这样的


build.gradle

现在build.gradle

plugins {
    id 'com.android.application' version '7.1.2' apply false
    id 'com.android.library' version '7.1.2' apply false
}

而仓库的配置挪到了settings.gradle中

pluginManagement {
    repositories {
        maven {
            url uri('./repos') //指定本地maven的路径,在项目根目录下
        }
        google()
        mavenCentral()
        gradlePluginPortal()

    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" }
        maven {
            allowInsecureProtocol = true
            url 'http://maven.faceunity.com/repository/maven-public/'
        }
    }
}
rootProject.name = "ASMTest"
include ':app'
include ':Plugin'

如果是非https的仓库直接写则无法访问报错需要添加allowInsecureProtocol = true

如果你自定义了一些插件该怎么写

buildscript {
    dependencies {
        classpath 'com.gm.aab:myGradlePlugin:1.0.0'
    }
}

plugins {
    id 'com.android.application' version '7.1.2' apply false
    id 'com.android.library' version '7.1.2' apply false
}


task clean(type: Delete) {
    delete rootProject.buildDir
}

buildscript 必须在plugins之前否则
all buildscript {} blocks must appear before any plugins {} blocks in the script

然后是插件的ID从哪里来


ID

就是这个properties的文件名但是我不建议这么使用
建议使用

plugins {
    id 'java-gradle-plugin'
}

gradlePlugin {
    plugins {
        simplePlugin {
             //就是ID
            id = 'com.gm.aab'
            //实际的类
            implementationClass = 'com.gm.aab.BPlugin'
        }
    }
}

此方式虽然两者等价 但是用插件避免不必要的错误 和明确清楚ID和类 节省不必要的代码

相关文章

网友评论

      本文标题:build.gradle 配置升级包含自定义插件

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