为什么gradle jettyRunWar任务不适用于java8?

时间:2014-08-27 10:57:04

标签: java spring-mvc gradle jetty war

使用:Gradle 2.0,Spring MVC 4.0.6,Java 8

我有下一个build.gradle

apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'idea'
apply plugin: 'java'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    providedCompile 'javax.servlet:servlet-api:2.5'
    compile 'org.springframework:spring-webmvc:4.0.6.RELEASE'
    runtime 'javax.servlet:jstl:1.1.2'
}

jettyRun.contextPath = ''

jettyRunWar.contextPath = ''

当我运行jettyRun时,应用程序运行正常。 但是当我跑jettyRunWar时,我得到了下一个错误:

org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet

任务之间有什么区别以及为什么第二个不起作用?

1 个答案:

答案 0 :(得分:1)

确保在Java 8中使用asm 5.0.1或更高版本。

仔细检查您的传递依赖项,并确保将asm库使用覆盖为较新版本。

这可能就是你所需要的......

dependencies {
    providedCompile 'javax.servlet:servlet-api:2.5'
    compile 'org.springframework:spring-webmvc:4.0.6.RELEASE'
    compile 'org.ow2.asm:asm:5.0.3'
    runtime 'javax.servlet:jstl:1.1.2'
}