build.gradle 配置升級(jí)包含自定義插件

以前我們的build.gradle配置,一般是以下這樣的


build.gradle

現(xiàn)在build.gradle

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

而倉(cāng)庫(kù)的配置挪到了settings.gradle中

pluginManagement {
    repositories {
        maven {
            url uri('./repos') //指定本地maven的路徑,在項(xiàng)目根目錄下
        }
        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的倉(cāng)庫(kù)直接寫則無(wú)法訪問(wèn)報(bào)錯(cuò)需要添加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從哪里來(lái)


ID

就是這個(gè)properties的文件名但是我不建議這么使用
建議使用

plugins {
    id 'java-gradle-plugin'
}

gradlePlugin {
    plugins {
        simplePlugin {
             //就是ID
            id = 'com.gm.aab'
            //實(shí)際的類
            implementationClass = 'com.gm.aab.BPlugin'
        }
    }
}

此方式雖然兩者等價(jià) 但是用插件避免不必要的錯(cuò)誤 和明確清楚ID和類 節(jié)省不必要的代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容