当前位置: 首页 > article >正文

mac maven编译出现问题

背景
进行maven install 命令,报错:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.310 s
[INFO] Finished at: 2024-11-26T11:22:34+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project channelapi-service: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] 
[ERROR] -> [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/MojoFailureException


分析
java安装正常

>java -version

java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)


>/usr/libexec/java_home -V


Matching Java Virtual Machines (3):
    1.8.381.09 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_381 (arm64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
    1.8.0_202 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

mvn -v 查看 runtime 环境

mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/manka/software/apache-maven-3.6.3
Java version: 1.8.0_381, vendor: Oracle Corporation, runtime: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "14.6.1", arch: "aarch64", family: "mac"

解决

删除掉 JavaAppletPlugin.plugin 这个插件即可。

进入 /Library/Internet Plug-Ins/ 目录,删除 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin

> rm -rf JavaAppletPlugin.plugin

重新执行 mvn -v runtime 正确

 mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/manka/software/apache-maven-3.6.3
Java version: 1.8.0_381, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "14.6.1", arch: "aarch64", family: "mac"

补充知识
MAC OS X环境的所有配置以及加载顺序如下:

# 系统级别
/etc/profile
/etc/paths 
 
# 用户级别
~/.bash_profile 
~/.bash_login 
~/.profile 
 
~/.bashrc(或者~/.zshrc)

前两个环境配置在系统启动时候就会加载,针对所有用户生效,后面四个属于具体用户级别的配置。

Maven会按照以下顺序来确定使用哪个JDK:

  1. Maven配置:Maven允许你通过maven-compiler-plugin插件指定使用的JDK版本。如果你在项目的pom.xml文件中配置了这个插件,并指定了JDK版本,Maven会尝试使用这个版本。

  2. 环境变量:如果Maven配置中没有指定JDK版本,它会查找环境变量JAVA_HOME。如果JAVA_HOME被设置,Maven会使用这个环境变量指向的JDK版本。

  3. 系统路径:如果JAVA_HOME没有被设置,Maven会退回到系统路径(PATH环境变量)来查找javajavac命令。系统路径中列出的第一个java命令将被使用。

  4. JDK安装:如果系统上安装了多个版本的JDK,并且PATH环境变量中包含了多个JDK的bin目录,那么系统会根据PATH中目录的顺序来决定使用哪个版本的java命令。

  5. 系统默认JDK:如果以上都没有指定,Maven将使用系统默认的JDK版本,这通常是操作系统安装时附带的JDK版本。


http://www.kler.cn/a/415512.html

相关文章:

  • 回文链表(java)
  • Swift——类与结构体
  • 力扣刷题TOP101:6.BM7 链表中环的入口结点
  • ClickHouse 中利用Map类型存储多key数组并进行高效查询
  • 喜欢发光的自己
  • 【Electron学习笔记(四)】进程通信(IPC)
  • k8s集成skywalking
  • Python 3 教程第40篇(requests 模块)
  • rabbitmq 启动异常问题排查
  • TransVG 代码配置及一些小细节
  • 《 C++ 点滴漫谈: 二 》编程语言之争:从 C 到 C++,两代语言的技术传承与演化,谁更适合你的项目?
  • 青训营-豆包MarsCode技术训练营试题解析九
  • 软件设计模式复习
  • 火语言RPA流程组件介绍--键盘按键
  • Scala学习记录,统计成绩
  • ADAM优化算法与学习率调度器:深度学习中的关键工具
  • 深入学习MapReduce:原理解析与基础实战
  • 认识redis 及 Ubuntu安装redis
  • Figma入门-约束与对齐
  • 【前端开发】小程序无感登录验证