我有一个项目通过三重配置:
-
在顶级构建中声明存储库。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')}")
}
}
}
}
然后你可以使用新的plugins
DSL:应用android插件
plugins {
id 'com.android.application'
}
或
plugins {
id 'com.android.library'
}
这是文件。