【Exception】maven-compiler-plugin 编译失败集锦

本文详细解析了一个常见的开发问题:尽管本地安装了JDK8,但在Maven构建过程中仍遇到编译环境版本过低的情况,无法支持JDK8的特性如diamond和lambda。文章深入探讨了MavenCompiler插件的默认设置如何影响编译过程,并提供了具体的解决方案,通过在pom.xml中配置<source>和<target>参数为1.8,确保代码能够正确编译。

1

JDK 明明是1.8为什么说编译环境和运行环境不一致?What fuck ?
在这里插入图片描述
JDK 明明1.8为什么编译环境变成1.5了?What fuck ?
在这里插入图片描述

原因分析:

奇怪的是我的机器上只安装了 JDK 8,为什么还会说不支持 diamond 和 lambda 呢?
在 Google 大神的指引下,在 Maven Compiler 插件介绍 里面找到了答案:
Also note that at present the default source setting is 1.5 and thedefault target setting is 1.5, independently of the JDK you run Maven with.

原来 Maven Compiler 插件默认会加 -source 1.5 及 -target 1.5 参数来编译(估计是为了兼容一些比较老的 Linux 服务器操作系统,它们通常只有 JDK 5),而我们的代码里使用了 JDK8 的语法

解决方案:

pom.xml中添加如下

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <!--指定source版本-->
                <source>1.8</source>
                <!--指定target版本-->
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>
Description Resource Path Location Type An error occurred while filtering resources TaskManagerWeb line 1 Maven Java EE Configuration Problem CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1 or one of its dependencies could not be resolved: Failed to collect dependencies at org.apache.maven.plugins:maven-compiler-plugin:jar:3.8.1 -> org.apache.maven:maven-plugin-api:jar:3.0 -> org.sonatype.sisu:sisu-inject-plexus:jar:1.4.2 -> org.codehaus.plexus:plexus-component-annotations:jar:1.7.1: ArtifactDescriptorException: Failed to read artifact descriptor for org.codehaus.plexus:plexus-component-annotations:jar:1.7.1: UnresolvableModelException: Failure to transfer org.sonatype.forge:forge-parent:pom:10 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.sonatype.forge:forge-parent:pom:10 from/to central (https://repo.maven.apache.org/maven2): No connector factories available pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem CoreException: Could not get the value for parameter compilerId for plugin execution default-testCompile: PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.apache.maven:maven-core:jar:3.0, org.apache.maven:maven-settings:jar:3.0, org.apache.maven:maven-settings-builder:jar:3.0, org.apache.maven:maven-repository-metadata:jar:3.0, org.apache.maven:maven-model-builder:jar:3.0, org.apache.maven:maven-aether-provider:jar:3.0, org.sonatype.aether:aether-impl:jar:1.7, org.sonatype.aether:aether-spi:jar:1.7, org.sonatype.aether:aether-api:jar:1.7, org.sonatype.aether:aether-util:jar:1.7, org.codehaus.plexus:plexus-interpolation:jar:1.14, org.codehaus.plexus:plexus-classworlds:jar:2.2.3, org.codehaus.plexus:plexus-component-annotations:jar:1.7.1, org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3, org.sonatype.plexus:plexus-cipher:jar:1.4, org.apache.maven.shared:maven-shared-utils:jar:3.2.1, commons-io:commons-io:jar:2.5, org.apache.maven.shared:maven-shared-incremental:jar:1.1, org.codehaus.plexus:plexus-java:jar:0.9.10, org.codehaus.plexus:plexus-compiler-api:jar:2.8.4, org.codehaus.plexus:plexus-compiler-manager:jar:2.8.4, org.codehaus.plexus:plexus-compiler-javac:jar:2.8.4: Failure to transfer org.apache.maven:maven-core:jar:3.0 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven:maven-core:jar:3.0 from/to central (https://repo.maven.apache.org/maven2): The operation was cancelled. pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (execution: default-compile, phase: compile) pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (execution: default-testCompile, phase: test-compile) pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix. TaskManagerWeb line 1 Maven Configuration Problem Project configurator "com.genuitec.eclipse.maven.wtp.hibernate.configurator.wtp" required by plugin execution "org.apache.maven.plugins:maven-war-plugin:3.2.3:war (execution: default-war, phase: package)" is not available. To enable full functionality, install the project configurator and run Maven->Update Project Configuration. pom.xml /TaskManagerWeb line 71 Maven Project Build Lifecycle Mapping Problem Project configurator "com.genuitec.eclipse.maven.wtp.spring.configurator.wtp" required by plugin execution "org.apache.maven.plugins:maven-war-plugin:3.2.3:war (execution: default-war, phase: package)" is not available. To enable full functionality, install the project configurator and run Maven->Update Project Configuration. pom.xml /TaskManagerWeb line 71 Maven Project Build Lifecycle Mapping Problem Unhandled exception type SQLException TaskController.java /TaskManagerWeb/src/main/java/com/taskmanager/controller line 57 Java Problem Unhandled exception type SQLException TaskController.java /TaskManagerWeb/src/main/java/com/taskmanager/controller line 69 Java Problem Unhandled exception type SQLException TaskController.java /TaskManagerWeb/src/main/java/com/taskmanager/controller line 80 Java Problem Unhan
05-30
zhouweixiang@KI-ZJ-2961:~/addSecret/zip-generator$ mvn compile [INFO] Scanning for projects... [INFO] [INFO] ---------------------< com.example:zip-generator >---------------------- [INFO] Building zip-generator 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ zip-generator --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /home/zhouweixiang/addSecret/zip-generator/src/main/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ zip-generator --- [INFO] Nothing to compile - all classes are up to date [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.382 s [INFO] Finished at: 2025-08-21T13:43:44+08:00 [INFO] ------------------------------------------------------------------------ zhouweixiang@KI-ZJ-2961:~/addSecret/zip-generator$ mvn exec:java -Dexec.mainClass="com.example.ZipCompressionBenchmark" [INFO] Scanning for projects... [INFO] [INFO] ---------------------< com.example:zip-generator >---------------------- [INFO] Building zip-generator 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- exec-maven-plugin:3.5.0:java (default-cli) @ zip-generator --- [WARNING] java.lang.ClassNotFoundException: com.example.ZipCompressionBenchmark at org.codehaus.mojo.exec.URLClassLoaderBuilder$ExecJavaClassLoader.loadClass (URLClassLoaderBuilder.java:198) at java.lang.ClassLoader.loadClass (ClassLoader.java:525) at org.codehaus.mojo.exec.ExecJavaMojo.doExec (ExecJavaMojo.java:361) at org.codehaus.mojo.exec.ExecJavaMojo.lambda$execute$0 (ExecJavaMojo.java:286) at java.lang.Thread.run (Thread.java:840) [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.190 s [INFO] Finished at: 2025-08-21T13:44:00+08:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.5.0:java (default-cli) on project zip-generator: An exception occurred while executing the Java class. com.example.ZipCompressionBenchmark -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException zhouweixiang@KI-ZJ-2961:~/addSecret/zip-generator$ tree . ├── pom.xml ├── src │ ├── main │ │ └── java │ │ └── com │ │ └── example │ │ ├── ZipCompressionBenchmark.java │ │ └── ZipWithSignatureGenerator.java │ └── test │ └── java │ └── com │ └── example │ └── AppTest.java └── target ├── classes │ └── com │ └── example │ ├── ZipCompressionBenchmark.java │ └── ZipWithSignatureGenerator.class ├── generated-sources │ └── annotations ├── maven-status │ └── maven-compiler-plugin │ └── compile │ └── default-compile │ ├── createdFiles.lst │ └── inputFiles.lst └── test-classes 20 directories, 8 files zhouweixiang@KI-ZJ-2961:~/addSecret/zip-generator$ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>zip-generator</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>zip-generator</name> <url>http://maven.apache.org</url> <!-- 设置 Java 编译版本 --> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- JUnit for testing --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- ZIP4J for ZIP compression --> <dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>2.11.1</version> </dependency> </dependencies> <!-- 构建插件配置 --> <build> <plugins> <!-- Maven Compiler Plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> <!-- Exec Maven Plugin for running main class --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.5.0</version> <executions> <execution> <goals> <goal>exec</goal> </goals> <configuration> <executable>java</executable> <arguments> <argument>-classpath</argument> <classpath /> <argument>com.example.ZipCompressionBenchmark</argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
最新发布
08-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值