簡體   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