[英]Command line mvn compile, but not IntelliJ
我在 IntelliJ 中編譯 Maven 項目時遇到問題。
mvn clean install
= SUCCESS因此,我認為項目本身沒有任何問題。 但是
我有
我還可以嘗試使 IntelliJ 足夠智能以編譯項目嗎?
如果命令行使用不同於 IntelliJ 的 mvn 版本,就會發生這種情況。 確保 Intellij 使用與命令行使用的相同的 Maven 可執行文件。 第一種類型:“which mvn”以找出命令行正在使用的 mvn 可執行文件。 然后讓 IntelliJ 使用相同的版本:Intellij => Preferences => Build, Execution and Deployment => Build Tools => Maven => Maven Home Directory。 IntelliJ 2017.1 中的 Mvn 設置
剛遇到這個問題。 對我有用的是關閉項目並刪除 .idea 文件夾。
重新打開項目,然后再次將其設置為 Maven 項目...
之后一切都好。
檢查項目的 JDK 設置。 根據我的經驗,這是導致 Intellij 無法編譯問題的最常見原因。
在“項目設置”(CMD-,)下 - 請參閱“項目 SDK”設置。
確保它是一個有效的 SDK,並且版本與源所需的版本匹配(即檢查 Maven 編譯器插件源/目標設置,並確保所選 SDK 至少是該版本或更高版本)。
幾年后,我再次遇到了同樣的問題,但在另一個項目中。 在這種情況下,IntelliJ 缺少生成缺失源的 Lombok 插件。
安裝:
當我生成源時,我遇到了這個問題。 Maven 沒有設置為將compiled-test-sources 文件夾標記為測試源根目錄,所以每次我用Maven 做一些事情時,我都必須標記生成的文件夾。
我在從 IntelliJ Maven compile 編譯到 Java 11 時遇到了類似的問題,表明com.sun.management.HotSpotDiagnosticMXBean#dumpHeap()
不存在。
嘗試了上述步驟后,我仍然無法解決它。 我最近遷移到了一個新的 Ubuntu 實例,並決定啟動我的舊 VM,在那里代碼編譯沒有問題。 所以我突然想到,當我在新的 VM 上安裝 IntelliJ 時,我選擇通過 IntelliJ SDK 下載功能下載 AdoptOpenJDK 11 ( Adopt-openj9-11.0.7 )。
因此,我手動下載並安裝了 OpenJDK 11 ( jdk-11.0.6+10 ) 的新副本,然后將項目的默認 SDK 更改為我安裝的新 SDK,一切都編譯得很好。
我希望這個答案可以幫助其他人。
長期以來一直面臨這個問題,通常的根本原因是如上所述在 IntelliJ 上運行的 Maven 版本不同,但有時也可能是由於在項目結構中選擇的 Java 版本不同。
至於我,即使在對齊 Maven 版本之后,問題也不會消失,但是一旦我檢查了 Java 版本,Intellij 默認為我選擇了 Java 11,一旦我將其改回 Java 8,它又開始工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.