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



我有一个项目通过三重配置:

  • 在顶级构建中声明存储库。gradle:

    buildscript { repositories { google() }}
    allprojects { repositories { google() }}
    
  • 声明类路径依赖性,这样插件工件就可以从相应的存储库中下载,位于顶层build.gradle

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

    apply plugin: 'com.android.application'
    

我想将其迁移到PluginsDependenciesSpec启用的新插件DSL中。

然后:

  • 设置中声明存储库。gradle

    pluginManagement { repositories { google() }}
    
  • 在应用程序build.gradle:中声明插件依赖项

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

但未能解决:

FAILURE:生成失败,出现异常。

  • 其中:构建文件"…/Build.gradle"行:2

  • 出现问题:在以下任何来源中都找不到插件[id:"com.android.application",版本:"3.1.3":

  • Gradle核心插件(插件不在"org.Gradle"命名空间中(

  • 插件存储库(无法解析插件工件"com.android.library:com.android/library.gradle.Plugin:3.1.3"(

在以下存储库中搜索:

  • 谷歌
  • BintrayJCenter
  • maven(https://maven.fabric.io/public)
  • Gradle中央插件库

让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')}")
}
}
}
}

然后你可以使用新的pluginsDSL:应用android插件

plugins {
id 'com.android.application'
}

plugins {
id 'com.android.library'
}

这是文件。

相关内容

最新更新