在撰寫Java時,專案會定一個Language level,來支援新的程式語法,例如有時候會這樣寫:
//注意 () -> {} 的部分
Platform.runLater(() -> {
//一堆程式碼
});
當Language level等級太低時,是無法編譯這種語法的。
依我遇到的狀況為例,Language level常常都會變回5,但以上程式寫法需要8才能支援。

後來發現是pom.xml搞的鬼,每當我對pom做編輯同步時,這些設定值就會跑掉。
所以,要在pom指定Language level即可固定住這些設定。
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
...
...
<!--新增maven.compiler的設定值-->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
...
...
</project>
這樣有修改pom時,就不會一直改到Language level了!
-END-
發佈留言