[英]IntelliJ target bytecode reverting
對於我目前正在處理的項目,IntelliJ 給了我編譯錯誤Error:java: javacTask: source release 8 requires target release 1.8
。 我進入設置>構建,執行,部署>編譯器>Java,看到我的一個模塊的目標字節碼版本被設置為1.5,所以我將它更改為1.8,編譯,它工作了。 但是第二天,我得到了同樣的錯誤。 我進入了設置,那個模塊的目標字節碼又回到了 1.5。 我將其更改為 1.8,並且編譯/運行得很好。 這已經發生了多次,我對必須進入設置以手動更改目標字節碼版本的次數感到沮喪。
為什么目標字節碼版本不斷恢復? 我沒有在 pom 或其他任何地方指定 1.5,所以我很困惑為什么字節碼版本一直設置為 1.5。
您需要在 pom.xml 文件中指定源版本和目標版本,但由於默認情況下添加了maven-compiler-plugin
,因此更簡單的方法是設置以下屬性:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
您需要將此添加到您的 POM 中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
供參考。
盡管從@isapir 和@carlos-a-ibarra 分別提到的答案中使用上述兩個設置設置了pom.xml
,但我仍然遇到了這個問題。
我發現這是由於 Intellij 設置造成的:
這個配置可以在 Build,Execution,Deployment > Build Tools > Maven > Importing 中找到
默認情況下,它被設置為“內部 JRE”設置,在最新版本的 Idea 中是 11。我不得不選擇它來使用項目配置使用的 1.8 JDK。
這很煩人,因為如果您混合使用 11 個和 8 個項目,則必須手動來回切換此設置。
它導致每次重新導入pom.xml
時,模塊輸出總是回退到 11。
這是 IntelliJ 中一個非常煩人的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.