gradle - 尝试从 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 文件中依赖项声明的编译/运行时分离。这意味着
runtime
Maven 范围内的传递库在编译时不再可见。
所以修复通常是找出你在代码中使用但没有明确依赖的库。
进行该调查的一个有用方法是利用dependencies
Gradle 的任务,专注于在Gradle 4.x 和 5.x 上compileClasspath
有效运行./gradlew dependencies --configuration compileClasspath
并分析差异。
推荐阅读
- spring-boot - 期望代码引发一个可抛出的 spring JUnit
- flutter - 多次播放同一个音频文件 - Audioplayers Flutter
- html - 标题文本不会出现在图像源旁边
- javascript - 如何在javascript中限制图像更改的复选框计数
- python - 我的石头剪刀布游戏中的错误,通过语句后循环不正确
- java - DevOps - Maven: org.apache.maven.lifecycle.LifecycleExecutionException: 未能执行目标 org.apache.maven.plugins:maven-war-plugin:2.6:war
- javascript - JQuery 适用于 OBS 但不适用于浏览器
- ruby-on-rails - 模板丢失错误 - Ruby on Rails
- html - 谷歌自定义html标签
- leaflet - 如何使用 Leaflet open street map in angular 将地图中心位置更改为顶部位置