IntelliJ IDEA 2021.2.2 Gradle模块无法识别依赖模块内置jar包的类
问题原因
Gradle 3.4+ 对依赖配置做了拆分,implementation 声明的依赖仅当前模块可用,不会向上传递给依赖当前模块的其他模块。你旧版本项目中使用的废弃配置compile等价于当前版本的api,所以可以正常传递依赖。
解决方案
只需修改 tictactoe-server-infrastructure 模块的 build.gradle 配置即可:
- 将原有的
java插件替换为java-library插件(api依赖配置由该插件提供):
plugins { // 替换原有的 id 'java' id 'java-library' }
- 将本地jar的依赖配置从
implementation修改为api:
dependencies { // 其余依赖保持不变 api fileTree(include: ['*.jar'], dir: 'libs') }
修改完成后重新刷新Gradle项目,tictactoe-server-presentation 模块即可正常识别依赖传递引入的jar包类。
补充说明
仅需要传递给上层模块的依赖使用api配置即可,其余内部依赖仍然推荐使用implementation,可以加快编译速度,避免不必要的依赖暴露。
内容的提问来源于stack exchange,提问作者Виктор К.
相关产品推荐
相关产品推荐

