Lambda Maven无法构建Java8

Lambda Maven无法构建Java8,lambda,java-8,tomcat7,maven-3,eclipse-mars,Lambda,Java 8,Tomcat7,Maven 3,Eclipse Mars,今天我尝试在我的项目中使用lambda表达式。我将我的项目配置为在任何地方都使用Java8:构建路径、Java编译器、maven编译器插件,但当我“运行/maven安装”时,它会显示错误 mvn-版本 java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) Apache

今天我尝试在我的项目中使用lambda表达式。我将我的项目配置为在任何地方都使用Java8:构建路径、Java编译器、maven编译器插件,但当我“运行/maven安装”时,它会显示错误

mvn-版本

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 22:22:22+0700)
Maven home: E:\Programs\Maven3.1.1
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_60\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
环境:Eclipse火星、Java 8 x64、Tomcat 7、Maven 3.2、Windows x64

如何使其运行???

Caused by: java.io.IOException: invalid constant type: 18
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1027)
明确表示您使用的javassist版本无法理解类文件常量池中的InvokeDynamic标记

从3.17开始,应支持此标签


也许
mvn-X
将揭示实际使用的是哪个版本的javassist。实际上,如果错误发生在
mvn安装过程中
javassist的版本不是由
build.dependencies
决定的,但是您必须告诉使用javassist的Maven插件使用它的最新版本。您应该检查哪个maven插件对应于堆栈跟踪中的Java包
org.hibernate.ejb.packaging
。然后在maven插件中添加相应的依赖项(javassist)。

尝试使用
3.18.0-GA
而不是javassist的
3.18.2-GA
,看看是否有帮助。@alfasin的可能重复。很抱歉,该主题没有解决我的问题。我试过3.18.0-GA。它不起作用。根据你的pom提取物,你使用的是jetty 6。非常确定,为了与Java8兼容,您需要将其设置为9。
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 22:22:22+0700)
Maven home: E:\Programs\Maven3.1.1
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_60\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
Caused by: java.io.IOException: invalid constant type: 18
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1027)