建.Gradle 找不到在构建脚本中声明的插件



我正在尝试在可重用的文件中分解出常见的 Gradle 任务。以下是build-root.gradle文件的摘录:

buildscript {
// Repository declaration
ext {
isSnapshot = version.endsWith("-SNAPSHOT")
repos = {
def mavenRepo = { repoName, repoUrl ->
maven {
credentials {
username System.env.<some env var>
password System.env.<some env var>
}
name repoName
url repoUrl
}
}
mavenLocal()
mavenRepo('repo1', 'https://repo1.url')
mavenRepo('repo2', 'https://repo2.url')
mavenRepo('repo3', 'https://repo3.url')
}
}
// Versions and libraries declaration
ext {
versions = [
... some stuff
// Gradle
gradleRelease           : '2.8.1',
... more stuff
]
libs = [
... some stuff
// Gradle
gradleRelease           : "net.researchgate:gradle-release:$versions.gradleRelease",
... more stuff
]
}
repositories repos
dependencies {
classpath libs.gradleRelease
}
apply plugin: 'net.researchgate.release'
}
... more common stuff

这个想法是让子项目从该文件应用并从中获取所有好处。

在"应用插件"行上,我收到以下错误 ->找不到 ID 为"net.researchgate.release"的插件。

我打印了libs.gradleRelease字符串,它看起来不错:net.researchgate:gradle-release:2.8.1

我们目前正在使用 Gradle 5.2.1,但我也尝试了 6.0.1 - 同样的错误。知道为什么找不到插件吗?顺便说一句,这不是这个特定插件独有的,我尝试了其他插件,但仍然遇到同样的错误。

在拉扯我剩下的头发并将我的头撞到墙上后,我遇到了这个=> https://discuss.gradle.org/t/how-do-i-include-buildscript-block-from-external-gradle-script/7016

@Peter_Niederwieser的相关评论:

">其次,不支持将构建脚本块外部化为脚本插件。(这是一个棘手的问题,想不出实现这一点的好方法。你可能不得不忍受一些重复,至少暂时是这样。请记住,在项目的"buildscript"块中指定的依赖项对所有子项目都是可见的。因此,只要你不需要依赖项在脚本插件中可用,你只需要在根项目的构建脚本中声明它们。

这正是我想做的。我不会在这里诅咒...

相关内容

最新更新