使用lambda表达式编译代码时出错

Ank*_*mik 6 java lambda maven java-8

我有以下代码:

package com.mongoDB;

import spark.Spark;

public class HelloWorldSparkStyle {
   public static void main(String[] args) {
       Spark.get("/hello", (req, res) -> "Hello World");
   }
}
Run Code Online (Sandbox Code Playgroud)

当我通过main方法运行它时运行正常但在我尝试编译时抛出以下错误:

\HelloWorldSparkStyle.java:[9,33] error: lambda expressions are not supported in -source 1.5

D:\WorkspaceWithJava8\BeginnerProject>javac -version
javac 1.8.0_60
Run Code Online (Sandbox Code Playgroud)

我正在使用Eclipse IDE并尝试通过命令行编译它.

Tun*_*aki 6

默认情况下,maven-compiler-plugin使用Java 5来编译类.引用其文档:

另请注意,目前默认的源设置为1.5,默认目标设置为1.5,与您运行Maven的JDK无关.如果要更改这些默认值,则应设置源和目标,如设置Java编译器的-source和-target中所述.

您需要将其配置为使用Java 8,如下所示:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)