我正在使用帶有 gradle 的 IntelliJ IDEA Ultimate 編寫 Minecraft 插件。我已將依賴項添加org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT為compileOnly. 在開發(fā)過程中,我注意到 gradle 以不同于 IntelliJ 的方式編譯我的代碼。例如,IntelliJ 無法接受addPassengeron Boat,但 gradle 編譯了它。相反,如果我將其更改為setPassenger,IntelliJ 不會將其標記為錯誤,但 gradle 會編譯失敗。我試圖使緩存無效,重新導入,清理,甚至刪除%userprofile%\.gradle目錄,但沒有任何幫助。compileOnly作為我改成的POC compile,效果不錯,IntelliJ和gradle編譯結(jié)果一致。什么原因?
1 回答

神不在的星期二
TA貢獻1963條經(jīng)驗 獲得超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'
}
添加回答
舉報
0/150
提交
取消