前言
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
翻譯 : 此環境中不提供編譯器。也許您在 JRE 而不是 JDK 上運行?
考慮可能是因為運行環境真的是在JRE 而不是 JDK 上運行
Mac環境- 打包編譯
dubbo-samples-protobuf時
思路
檢查 Maven 命令
mvn -version
Apache Maven 3.6.0 (.......)
Maven home: /usr/local/maven3
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Default locale: zh_CN, platform encoding: UTF-8
OS info....
檢查 Java 命令
java -version
$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
- 有多
jdk版本, 檢查可能有誤
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
13.0.2 (x86_64) "Oracle Corporation" - "Java SE 13.0.2" /Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home
11.0.7 (x86_64) "Oracle Corporation" - "Java SE 11.0.7" /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home
1.8.221.11 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_221 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
結合上面兩類命令的檢查, 大致定位為 Mac 系統升級的問題
解決辦法
為 Maven 指定 JDK 路徑
- 查看
Maven的安裝路徑:mvn -version
Apache Maven 3.6.0 (.......)
Maven home: /usr/local/maven3
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Default locale: zh_CN, platform encoding: UTF-8
OS info....
- 進入
Maven安裝目錄的bin目錄:cd /usr/local/maven3/bin
$ cd /usr/local/maven3/bin
m2.conf
mvn
mvn.cmd
mvnDebug
mvnDebug.cmd
mvnyjp
- 編輯文件
mvn:vim mvn, 在文件開頭添加一行聲明:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
- 保存后退出(
:wq) - 再次打包編譯
dubbo-samples-protobuf成功

參考來源
Macbook idea:No compiler is provided in this environment. Perhaps you are running on a JRE...
