2

我正在尝试使用 Gradle 的 gretty 插件运行 Spring MVC 应用程序(JVM 版本是 14)要部署应用程序我使用tomcatRun任务(tomcat 版本是 8.5.49)。

如果我使用一些预览功能(例如java.lang.String#formatted method),我必须在任务中添加enable-preview标志compileJava

compileJava {
    options.compilerArgs += '--enable-preview'
}

但是,如果build.gradle包含此类更改,则会出现问题,并且日志中会出现以下消息:

INFO: No Spring WebApplicationInitializer types detected on classpath 因此,所有应用程序端点都不可用。

如果使用jettyRun任务,则会引发以下异常:

17:14:38 WARN  Failed startup of context o.a.g.JettyWebAppContext@2715644a
java.lang.UnsupportedClassVersionError: Preview features are not enabled for com/config/ApplicationDispatcherServletInitializer (class file version 58.65535). Try running with '--enable-preview'

是否可以通过 gretty 插件使用预览功能?

4

1 回答 1

0

通过添加--enable-preview到 gretty 配置中的 JVM 参数列表来解决:

build.gradle
gretty {
    jvmArgs = ['--enable-preview']
}

检查了 Jetty(9.4.24.v20191120) 和 Tomcat(8.5.49)

于 2020-06-29T12:21:16.610 回答