簡體   English   中英

如何使用新的插件 DSL 應用 com.android.application 插件?

[英]How to apply the com.android.application plugin using the new plugins DSL?

我有一個通過三重配置的項目:

  • 在頂級build.gradle 中聲明存儲庫:

     buildscript { repositories { google() }} allprojects { repositories { google() }}
  • 在頂級build.gradle 中聲明類路徑依賴項,以便從相應的存儲庫中下載插件工件

    buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.1.3' }}
  • 然后,在 app build.gradle文件中,應用插件:

     apply plugin: 'com.android.application'

我想遷移它以使用由PluginsDependenciesSpec啟用的新插件 DSL

然后我:

  • settings.gradle 中聲明存儲庫:

     pluginManagement { repositories { google() }}
  • 在 app build.gradle 中聲明插件依賴:

     plugins { id "com.android.application" version "3.1.3" }

但這無法解決:

FAILURE:構建失敗,出現異常。

  • 其中:構建文件“…/build.gradle”行:2

  • 出了什么問題:在以下任何來源中都找不到插件 [id: 'com.android.application', version: '3.1.3']:

  • Gradle 核心插件(插件不在“org.gradle”命名空間中)

  • 插件存儲庫(無法解析插件工件 'com.android.library:com.android.library.gradle.plugin:3.1.3')

在以下存儲庫中搜索:

我缺少什么讓 Gradle 連接這里的點,以便它可以將 plugin.id 連接到從適當的存儲庫中獲取的適當的 JAR?

pluginManagement您可以使用resolutionStrategy並強制使用google()存儲庫中的特定工件。

pluginManagement {
    repositories {
        google()
    }

    resolutionStrategy {
        eachPlugin {
            if (requested.id.id in ['com.android.application', 'com.android.library']) {
                useModule("com.android.tools.build:gradle:${getProperty('version.plugin.android')}")
            }
        }
    }
}

然后你可以使用新的plugins DSL 來應用 android 插件:

plugins {
    id 'com.android.application'
}

或者

plugins {
    id 'com.android.library'
}

這是文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM