我有一个通过以下三项配置的项目:
在顶级 build.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'
我想迁移它以使用new plugins DSL启用的PluginsDependenciesSpec
。
然后我:
在 settings.gradle 中声明了存储库:
pluginManagement { repositories { google() }}
在应用程序 build.gradle 中声明了插件依赖性:
plugins { id "com.android.application" version "3.1.3" }
但这无法解决:
失败:构建失败,并出现异常。
其中:构建文件'... / build.gradle'行:2
出了什么问题:在以下任何来源中均未找到插件[id:'com.android.application',版本:'3.1.3']:
Gradle Core插件(插件不在'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?
答案 0 :(得分:0)
在 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'
}