我正在尝试升级到 Gradle 5,但在编译时收到“未解析的引用”错误 - 其中大部分是类路径中的内部库。此外,javax.inject 库不知何故不再存在。
我尝试单独添加现在缺少的库,但由于某种原因(某种抽象方法错误)而无法构建。
buildscript {
...
dependencies {
classpath "some-internal-classpath"
}
}
如何获取它,以便 Gradle 5 能够解析来 self 的内部类路径的这些引用 + 再次使用 javax.inject?
最佳答案
从 Gradle 4.x 升级到 Gradle 5.x 时,一项行为变化可能会导致您观察到的情况:
- Gradle 5.x 将遵循 compile / runtime separation of dependency declarations在 POM 文件中。这意味着 Maven 运行时范围内的传递库在编译时不再可见。
因此,解决方法通常是找出您在代码中使用但未明确依赖的库。
进行该调查的一个有用方法是利用 Gradle 的 dependencies
任务,重点关注 compileClasspath
,有效运行 ./gradlew dependency --configuration使用 Gradle 4.x 和 5.x 编译Classpath
并分析差异。
关于gradle - 尝试从 Gradle 4.10 升级到 5.0,但出现 Unresolved 引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58032380/