maven-compiler-plugin指定Java小版本可行性及启动异常排查
问题:Maven Compiler Plugin的release参数能否指定Java小版本?Spring 6.1.7兼容Java 17.0.12吗?
- Maven Compiler Plugin文档提到javac可通过
--release参数指定项目构建对应的Java SE版本,但现有示例多使用11、17这类大版本号。请问是否可以指定小版本(如17.0.12)?我的配置示例如下:
<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.13.0</version> <configuration> <release>17.0.12</release> </configuration> </plugin>
- 将配置从
17改为17.0.12后,Web应用启动失败,报错信息如下:
Failed to define class pkg1.web.ABCContextListener in Module "deployment.ABCEAR-0.0.1-SNAPSHOT.ear.ABC-0.0.1-SNAPSHOT.war" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link pkg1/web/ABCContextListener (Module "deployment.ABCEAR-0.0.1-SNAPSHOT.ear.ABC-0.0.1-SNAPSHOT.war" from Service Module Loader): org/springframework/web/context/ContextLoaderListener at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1090) at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:351) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:276) at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:79) at org.jboss.modules.Module.loadModuleClass(Module.java:765) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:192) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.jboss.as.ee@28.0.1.Final//org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:21) at org.jboss.as.ee@28.0.1.Final//org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:14) at org.jboss.as.ee@28.0.1.Final//org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:84) at org.jboss.as.ee@28.0.1.Final//org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77) at org.jboss.as.server@20.0.2.Final//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:182) at org.jboss.msc@1.5.0.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1590) at org.jboss.msc@1.5.0.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1553) at org.jboss.msc@1.5.0.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1411) at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) at java.base/java.lang.Thread.run(Thread.java:842)
- 我使用的Spring版本为6.1.7,请问该版本是否兼容Java 17.0.12?
内容的提问来源于stack exchange,提问作者user1169587
相关产品推荐
相关产品推荐

