1. 程式人生 > >Error: Lambda expressions are allowed only at source level 1.8 or above

Error: Lambda expressions are allowed only at source level 1.8 or above

這個問題也是奇葩,前幾天還好好的,突然開啟 idea 執行專案就報這個錯誤,真是無語了,網上搜了一波,終於解決了

  • 檢查 pom 檔案的 targetsource

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties> 

    <build>
        <plugins>
            <plugin
    >
    <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>
    1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
  • 檢查專案的編譯環境

    p1

    p2

    p3

    p4

    開啟 idea 設定

    p5

  • 檢查專案下的 .settings/org.eclipse.jdt.core.prefs 檔案

    eclipse.preferences.version=1
    org.eclipse.jdt.core.compiler
    .codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.source=1.8
  • clean 一下 maven 專案,重新執行,終於搞定了

    p6