为了账号安全,请及时绑定邮箱和手机立即绑定

带有 gradle 的 IntelliJ 导致编译不一致

带有 gradle 的 IntelliJ 导致编译不一致

呼啦一阵风 2023-05-17 16:43:39
我正在使用带有 gradle 的 IntelliJ IDEA Ultimate 编写 Minecraft 插件。我已将依赖项添加org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT为compileOnly. 在开发过程中,我注意到 gradle 以不同于 IntelliJ 的方式编译我的代码。例如,IntelliJ 无法接受addPassengeron Boat,但 gradle 编译了它。相反,如果我将其更改为setPassenger,IntelliJ 不会将其标记为错误,但 gradle 会编译失败。我试图使缓存无效,重新导入,清理,甚至删除%userprofile%\.gradle目录,但没有任何帮助。compileOnly作为我改成的POC compile,效果不错,IntelliJ和gradle编译结果一致。什么原因?
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

好的,我找到了解决方案(并忘记了这个问题)。


我一直在使用多个依赖项,一个加载另一个使用我隐式加载到我的build.gradle. 但是,它们并不是完全相同的依赖关系,而是平行的依赖关系。所以 gradle 无法选择一个依赖的更高版本。解决方案是排除这个显式加载的依赖项,并且一切正常。


前:


dependencies {

    compileOnly 'com.sk89q.worldedit:worldedit-bukkit:7.0.1'

    compileOnly group: 'org.spigotmc', name:'spigot-api', version: '1.15.1-R0.1-SNAPSHOT'

}

后:


dependencies {

    compileOnly('com.sk89q.worldedit:worldedit-bukkit:7.0.1') {

        exclude `org.bukkit:bukkit:1.15.1-R0.1-SNAPSHOT`

    }

    compileOnly group: 'org.spigotmc', name:'spigot-api', version: '1.15.1-R0.1-SNAPSHOT'

}


查看完整回答
反对 回复 2023-05-17
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信