尝试从 Gradle 4.10 升级到 5.0,但遇到未解决的引用错误



我正在尝试升级到 Gradle 5,但在编译时遇到"未解析的引用"错误 - 其中大多数是类路径中的内部库。此外,javax.inject 库不知何故不再存在。

我尝试单独添加现在缺少的库,但由于某种原因(存在某种抽象方法错误(而无法构建。

buildscript {
...
dependencies {
classpath "some-internal-classpath"
}
}

我如何获得它,以便 Gradle 5 能够解析来自我的内部类路径的这些引用 + 再次使用 javax.inject?

从 Gradle 4.x 升级到 Gradle 5.x 时,有一个行为变化可能会导致您观察到的情况:

  • Gradle 5.x 将遵循 POM 文件中依赖项声明的编译/运行时分离。这意味着 Mavenruntime范围内的传递库在编译时不再可见。

因此,解决方法通常是找出您在代码中使用的库,但没有显式依赖。

进行该调查的一个有用方法是利用 Gradle 的dependencies任务,专注于compileClasspath,有效地使用 Gradle 4.x 和 5.x 运行./gradlew dependencies --configuration compileClasspath并分析差异。

最新更新