Error when compiling Spark source code locally in idea

Report the error content first

[INFO] Scanning for projects...
[INFO] -------------------------------------------------- --------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] -------------------------------------------------- --------------------------
[INFO] os.detected.name: osx
[INFO] os.detected.arch: x86_64
[INFO] os.detected.version: 10.15
[INFO] os.detected.version.major: 10
[INFO] os.detected.version.minor: 15
[INFO] os.detected.classifier: osx-x86_64
[INFO] -------------------------------------------------- --------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Spark Project Parent POM [pom]
[INFO] Spark Project Tags [jar]
[INFO] Spark Project Sketch [jar]
[INFO] Spark Project Local DB [jar]
[INFO] Spark Project Networking [jar]
[INFO] Spark Project Shuffle Streaming Service [jar]
[INFO] Spark Project Unsafe [jar]
[INFO] Spark Project Launcher [jar]
[INFO] Spark Project Core [jar]
[INFO] Spark Project ML Local Library [jar]
[INFO] Spark Project GraphX [jar]
[INFO] Spark Project Streaming [jar]
[INFO] Spark Project Catalyst [jar]
[INFO] Spark Project SQL [jar]
[INFO] Spark Project ML Library [jar]
[INFO] Spark Project Tools [jar]
[INFO] Spark Project Hive [jar]
[INFO] Spark Project REPL [jar]
[INFO] Spark Project YARN Shuffle Service [jar]
[INFO] Spark Project YARN [jar]
[INFO] Spark Project Hive Thrift Server [jar]
[INFO] Spark Project Assembly [pom]
[INFO] Kafka 0.10 + Token Provider for Streaming [jar]
[INFO] Spark Integration for Kafka 0.10 [jar]
[INFO] Kafka 0.10 + Source for Structured Streaming [jar]
[INFO] Spark Project Examples [jar]
[INFO] Spark Integration for Kafka 0.10 Assembly [jar]
[INFO] Spark Avro [jar]
[INFO] Spark Project Connect Common [jar]
[INFO] Spark Project Connect Server [jar]
[INFO] Spark Project Connect Client [jar]
[INFO] Spark Protobuf [jar]
[INFO]
[INFO] ------------------< org.apache.spark:spark-parent_2.12 >-----------------
[INFO] Building Spark Project Parent POM 3.4.2-SNAPSHOT [1/32]
[INFO]--------------------------------[ pom ]--------------------- --------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ spark-parent_2.12 ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-versions) @ spark-parent_2.12 ---
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message:
Detected Maven Version: 3.8.4 is not in the allowed range 3.8.6.
[INFO] -------------------------------------------------- --------------------------
[INFO] Reactor Summary for Spark Project Parent POM 3.4.2-SNAPSHOT:
[INFO]
[INFO] Spark Project Parent POM ............................. FAILURE [ 1.441 s]
[INFO] Spark Project Tags ............................. SKIPPED
[INFO] Spark Project Sketch ............................. SKIPPED
[INFO] Spark Project Local DB ........................ SKIPPED
[INFO] Spark Project Networking ............................. SKIPPED
[INFO] Spark Project Shuffle Streaming Service............ SKIPPED
[INFO] Spark Project Unsafe ............................. SKIPPED
[INFO] Spark Project Launcher ........................ SKIPPED
[INFO] Spark Project Core ............................. SKIPPED
[INFO] Spark Project ML Local Library ........................ SKIPPED
[INFO] Spark Project GraphX ............................. SKIPPED
[INFO] Spark Project Streaming........................ SKIPPED
[INFO] Spark Project Catalyst ............................. SKIPPED
[INFO] Spark Project SQL ............................. SKIPPED
[INFO] Spark Project ML Library ........................ SKIPPED
[INFO] Spark Project Tools ........................ SKIPPED
[INFO] Spark Project Hive ............................. SKIPPED
[INFO] Spark Project REPL ............................. SKIPPED
[INFO] Spark Project YARN Shuffle Service ............. SKIPPED
[INFO] Spark Project YARN ............................. SKIPPED
[INFO] Spark Project Hive Thrift Server........................ SKIPPED
[INFO] Spark Project Assembly ........................ SKIPPED
[INFO] Kafka 0.10 + Token Provider for Streaming ........... SKIPPED
[INFO] Spark Integration for Kafka 0.10 ........................ SKIPPED
[INFO] Kafka 0.10 + Source for Structured Streaming..... SKIPPED
[INFO] Spark Project Examples ............................. SKIPPED
[INFO] Spark Integration for Kafka 0.10 Assembly ..... SKIPPED
[INFO] Spark Avro ........................................ SKIPPED
[INFO] Spark Project Connect Common ........................ SKIPPED
[INFO] Spark Project Connect Server ........................ SKIPPED
[INFO] Spark Project Connect Client ........................ SKIPPED
[INFO] Spark Protobuf ........................................ SKIPPED
[INFO] -------------------------------------------------- --------------------------
[INFO] BUILD FAILURE
[INFO] -------------------------------------------------- --------------------------
[INFO] Total time: 3.055 s
[INFO] Finished at: 2023-11-03T16:40:50 + 08:00
[INFO] -------------------------------------------------- --------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M2:enforce (enforce-versions) on project spark-parent_2.12: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [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

1. Solution:
I don’t know where I heard it before, programmers don’t need to pay attention to the WARNING log
If you look carefully at the log, it actually becomes clearer.

[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message:
Detected Maven Version: 3.8.4 is not in the allowed range 3.8.6.

The problem was solved after upgrading the Maven version to 3.8.7

2. Detailed steps to upgrade Maven version
https://archive.apache.org/dist/maven/maven-3/

Unzip the installation package
tar -zxvf apache-maven-3.8.7-bin.tar.gz
Create soft links
ln -s apache-maven-3.8.7 maven
Configure environment variables
vim /etc/profile
export MAVEN_HOME=/XXX/soft/maven
export PATH=.:$MAVEN_HOME/bin:$PATH

source /etc/profile


mvn -version
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /XXX/soft/maven
Java version: 1.8.0_201, 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: "10.16", arch: "x86_64", family: "mac"