繁体   English   中英

IntelliJ with gradle 导致编译不一致

[英]IntelliJ with gradle gives inconsistency in compilation

我正在使用 IntelliJ IDEA Ultimate 和 gradle 编写 Minecraft 插件。 我添加了依赖项org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT作为compileOnly 在开发过程中,我注意到 gradle 以与 IntelliJ 不同的方式编译我的代码。 例如,的IntelliJ无法接受addPassengerBoat ,但摇篮编译它。 相反,如果我将其更改为setPassenger ,IntelliJ 不会将其标记为错误,但 gradle 无法编译。 我试图使缓存无效,重新导入,清理,甚至删除%userprofile%\\.gradle目录,没有任何帮助。 作为POC,我将compileOnly改为compile ,效果很好,IntelliJ和gradle编译结果一致。 什么原因?

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

我一直在使用多个依赖项,一个使用我在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'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM