[开发工具]Maven 构建时报错:

一、问题描述

在项目的一个模块的根目录下,通过命令行执行 Maven 编译指令mvn complie出现构建失败,终端报错BUILD FAILURE :

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(default-compile) on project maven-javaee-build-05: Fatal error compiling: ЧĿ귢а: 17 -> [Help 1]

而使用 IDEA 的可视化界面就一切正常:

二、解决过程

1.官方文档

以后只用IDEA的可视化界面也就行了。但按理来说,这只是同一套构建指令的两种操作方式,不应当出现区别。出于好奇,我进入了终端报错 INFO 给出的帮助文档(MojoExecutionException - Apache Maven - Apache Software Foundation)。

该报错和Maven 本体无关,而是由于某个插件异常引起的。可以在 Plugin 列表(Apache Maven Compiler Plugin -- Plugin Documentation)可找到compiler插件的详细说明。

2. 命令行 --help 帮助

此外,可以在终端中输入用mvn compile -h查看参数用法。

3.检查 Java 版本

我的项目所用 JDK 是corretto-17.0.9

shell 复制代码
$ java -version #调用系统环境变量
java version "17.0.9" 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 17.0.9+11-LTS-201)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.9+11-LTS-201, mixed mode, sharing)

在maven的 setting.xml下已经添加了 profile

xml 复制代码
<profile>  
      <id>jdk-17</id>  
 
      <activation>  
        <activeByDefault>true</activeByDefault>  
        <jdk>17</jdk>  
      </activation>  
 
      <properties>  
        <maven.compiler.source>17</maven.compiler.source>  
        <maven.compiler.target>17</maven.compiler.target>  
        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>  
      </properties>  
    </profile>

问题在于,本地机器上的用户环境变量JAVA_HOME仍是之前使用的Java 1.8,而 Maven 默认调用的就是这个用户环境变量。

三、解决方案

将用户环境变量 JAVA_HOME 值改为项目所用的 JDK 的目录。 问题解决:

相关推荐
Java编程爱好者8 分钟前
Spring Boot 缓存架构:一行配置切换 Caffeine 与 Redis,透明支持多租户隔离
后端
超捻11 分钟前
04 python 数据类型转换
后端
IT_陈寒15 分钟前
Python开发者都在偷偷用的5个高效技巧,你竟然还不知道?
前端·人工智能·后端
kevinzeng16 分钟前
mysql和redis数据一致性的策略
后端
小码哥_常17 分钟前
一文搞懂双Token、SSO与第三方权限打通,附实战代码
后端
SimonKing19 分钟前
5分钟学会!把代码从本地推送到 GitHub,就是这么简单
java·后端·程序员
灵境空间23 分钟前
企业微信 AI 机器人 PHP SDK —— 免回调地址,三行代码接入,支持流式回复
后端
陈随易29 分钟前
Vite 8正式发布,内置devtool,Wasm SSR 支持
前端·后端·程序员
CodeSheep37 分钟前
首个OpenClaw龙虾大模型排行榜来了,国产AI霸榜了!
前端·后端·程序员
Moment40 分钟前
想转 AI 全栈?这些 Agent 开发面试题你能答出来吗
前端·后端·面试