Java - Maven

Maven

第 1 章 IDEA 集成 Maven

1.1 下载及配置 Maven
  1. 下载 Maven

https://maven.apache.org/download.cgi,选择下载后解压

  1. 配置 MAVEN_HOME

第一步:新增环境变量:MAVEN_HOME

第二步:在 path 环境变量中添加:%MAVEN_HOME%\bin

第三步:测试:按住 win+R 输入cmd,进入黑窗口控制台。输入命令: mvn -v 。如果出现以下 Maven 的版本信息,则说明 Maven 的安装与环境变量的配置均正确。

1.2 修改 Maven 配置文件
  1. 打开下载的 Maven,找到 conf 目录下的 settings.xml

在 中添加子节点:

<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

指定目录 D:\JavaCode\Maven Repository 作为本地仓库,用来存储 jar 包:

配置 Maven 的 jdk 版本:

<profile>
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>
1.3 IDEA 集成 Maven 插件

第 2 章 pom.xml

2.1 项目基本信息
标签说明
groupId项目的唯一标识,一般为公司域名倒写
artifactId项目名称
version版本号
packaging项目打包方式,默认为 jar,还可以是 war、rar、pom
dependencies项目依赖
properties属性
build项目构建配置信息,比如 jdk 版本
2.2 配置信息

定义配置信息:

<properties>
  <!-- 编码格式 -->
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <!-- 编译 Java 版本 -->
  <maven.compile.source>8</maven.compile.source>
  <maven.compile.target>8</maven.compile.target>
</properties>
2.3 依赖包

定义依赖包。

定义常用的依赖范围:

依赖范围编译测试运行是否打入 jar 包
compile✔️✔️✔️✔️
test✔️
2.4 第三方插件

定义第三方插件。

第 3 章 生命周期

生命周期说明
clean清理编译项目
compile编译项目源代码
test测试,测试代码不会被打包或部署
package打包
install将包安装到本地仓库,以便其他项目依赖
site生成项目报告,站点,发布站点
deploy将包部署部署到远程仓库,与其他开发人员共享

第 4 章 聚合开发

Maven 使用 DependencyManagement 元素来提供了一种管理依赖版本号的方式,通常在一个项目的最顶层的父项目的 pom.xml 中。使用 DependencyManagement 元素能让所有在子项目中引用依赖,而不用显式的列出版本。

这样做的好处就是:当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改;另外如果某个子项目需要另外的一个版本,只需要另外声明 version 就可。

[root@yfw ~]# cd /opt/openfire [root@yfw openfire]# cd /tmp [root@yfw tmp]# wget https://downloads.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz --2025-10-03 07:44:49-- https://downloads.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 135.181.214.104, 88.99.208.237, 2a01:4f8:10a:39da::2, ... Connecting to downloads.apache.org (downloads.apache.org)|135.181.214.104|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2025-10-03 07:44:50 ERROR 404: Not Found. [root@yfw tmp]# wget https://mirror.sjtu.edu.cn/apache/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz --2025-10-03 07:45:13-- https://mirror.sjtu.edu.cn/apache/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz Resolving mirror.sjtu.edu.cn (mirror.sjtu.edu.cn)... 111.186.58.212 Connecting to mirror.sjtu.edu.cn (mirror.sjtu.edu.cn)|111.186.58.212|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2025-10-03 07:45:14 ERROR 404: Not Found. [root@yfw tmp]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz --2025-10-03 07:45:34-- https://mirrors.aliyun.com/apache/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 124.95.175.51, 124.95.175.56, 124.95.175.52, ... Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|124.95.175.51|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2025-10-03 07:45:34 ERROR 404: Not Found. [root@yfw tmp]# wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz --2025-10-03 07:47:12-- https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz Resolving dlcdn.apache.org (dlcdn.apache.org)... 151.101.2.132, 2a04:4e42::644 Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... failed: Connection timed out. Connecting to dlcdn.apache.org (dlcdn.apache.org)|2a04:4e42::644|:443... failed: Network is unreachable. [root@yfw tmp]# [root@yfw tmp]# [root@yfw tmp]# [root@yfw tmp]# [root@yfw tmp]# wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.zip --2025-10-03 07:50:59-- https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.zip Resolving dlcdn.apache.org (dlcdn.apache.org)... 151.101.2.132, 2a04:4e42::644 Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 9278421 (8.8M) [application/zip] Saving to: 'apache-maven-3.9.11-bin.zip' apache-maven-3.9.11-bin.zi 100%[======================================>] 8.85M 20.2KB/s in 6m 47s 2025-10-03 07:57:47 (22.2 KB/s) - 'apache-maven-3.9.11-bin.zip' saved [9278421/9278421] [root@yfw tmp]# cd /tmp [root@yfw tmp]# unzip apache-maven-3.9.11-bin.zip -d /opt/ Archive: apache-maven-3.9.11-bin.zip creating: /opt/apache-maven-3.9.11/ creating: /opt/apache-maven-3.9.11/lib/ creating: /opt/apache-maven-3.9.11/boot/ creating: /opt/apache-maven-3.9.11/lib/jansi-native/ creating: /opt/apache-maven-3.9.11/lib/jansi-native/Windows/ creating: /opt/apache-maven-3.9.11/lib/jansi-native/Windows/arm64/ creating: /opt/apache-maven-3.9.11/lib/jansi-native/Windows/x86/ creating: /opt/apache-maven-3.9.11/lib/jansi-native/Windows/x86_64/ creating: /opt/apache-maven-3.9.11/bin/ creating: /opt/apache-maven-3.9.11/conf/ creating: /opt/apache-maven-3.9.11/conf/logging/ creating: /opt/apache-maven-3.9.11/lib/ext/ creating: /opt/apache-maven-3.9.11/lib/ext/hazelcast/ creating: /opt/apache-maven-3.9.11/lib/ext/redisson/ inflating: /opt/apache-maven-3.9.11/README.txt inflating: /opt/apache-maven-3.9.11/LICENSE inflating: /opt/apache-maven-3.9.11/NOTICE inflating: /opt/apache-maven-3.9.11/lib/aopalliance.license inflating: /opt/apache-maven-3.9.11/lib/asm.license inflating: /opt/apache-maven-3.9.11/lib/commons-cli.license inflating: /opt/apache-maven-3.9.11/lib/commons-codec.license inflating: /opt/apache-maven-3.9.11/lib/error_prone_annotations.license inflating: /opt/apache-maven-3.9.11/lib/failureaccess.license inflating: /opt/apache-maven-3.9.11/lib/gson.license inflating: /opt/apache-maven-3.9.11/lib/guava.license inflating: /opt/apache-maven-3.9.11/lib/guice.license inflating: /opt/apache-maven-3.9.11/lib/httpclient.license inflating: /opt/apache-maven-3.9.11/lib/httpcore.license inflating: /opt/apache-maven-3.9.11/lib/jansi.license inflating: /opt/apache-maven-3.9.11/lib/javax.annotation-api.license inflating: /opt/apache-maven-3.9.11/lib/javax.inject.license inflating: /opt/apache-maven-3.9.11/lib/jcl-over-slf4j.license inflating: /opt/apache-maven-3.9.11/lib/jspecify.license inflating: /opt/apache-maven-3.9.11/lib/org.eclipse.sisu.inject.license inflating: /opt/apache-maven-3.9.11/lib/org.eclipse.sisu.plexus.license inflating: /opt/apache-maven-3.9.11/lib/plexus-cipher.license inflating: /opt/apache-maven-3.9.11/lib/plexus-component-annotations.license inflating: /opt/apache-maven-3.9.11/lib/plexus-interpolation.license inflating: /opt/apache-maven-3.9.11/lib/plexus-sec-dispatcher.license inflating: /opt/apache-maven-3.9.11/lib/plexus-utils.license inflating: /opt/apache-maven-3.9.11/lib/slf4j-api.license inflating: /opt/apache-maven-3.9.11/boot/plexus-classworlds.license inflating: /opt/apache-maven-3.9.11/lib/jansi-native/Windows/arm64/jansi.dll inflating: /opt/apache-maven-3.9.11/lib/jansi-native/Windows/x86/jansi.dll inflating: /opt/apache-maven-3.9.11/lib/jansi-native/Windows/x86_64/jansi.dll inflating: /opt/apache-maven-3.9.11/bin/m2.conf inflating: /opt/apache-maven-3.9.11/bin/mvn.cmd inflating: /opt/apache-maven-3.9.11/bin/mvnDebug.cmd inflating: /opt/apache-maven-3.9.11/bin/mvn inflating: /opt/apache-maven-3.9.11/bin/mvnDebug inflating: /opt/apache-maven-3.9.11/bin/mvnyjp inflating: /opt/apache-maven-3.9.11/conf/logging/simplelogger.properties inflating: /opt/apache-maven-3.9.11/conf/settings.xml inflating: /opt/apache-maven-3.9.11/conf/toolchains.xml inflating: /opt/apache-maven-3.9.11/lib/ext/README.txt inflating: /opt/apache-maven-3.9.11/lib/ext/hazelcast/README.txt inflating: /opt/apache-maven-3.9.11/lib/ext/redisson/README.txt inflating: /opt/apache-maven-3.9.11/lib/jansi-native/README.txt inflating: /opt/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar inflating: /opt/apache-maven-3.9.11/lib/jcl-over-slf4j-1.7.36.jar inflating: /opt/apache-maven-3.9.11/lib/aopalliance-1.0.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-connector-basic-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/maven-settings-builder-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/maven-artifact-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/maven-compat-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/slf4j-api-1.7.36.jar inflating: /opt/apache-maven-3.9.11/lib/org.eclipse.sisu.inject-0.9.0.M4.jar inflating: /opt/apache-maven-3.9.11/lib/jspecify-1.0.0.jar inflating: /opt/apache-maven-3.9.11/lib/wagon-provider-api-3.5.3.jar inflating: /opt/apache-maven-3.9.11/lib/guice-5.1.0-classes.jar inflating: /opt/apache-maven-3.9.11/lib/maven-slf4j-provider-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-named-locks-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/javax.annotation-api-1.3.2.jar inflating: /opt/apache-maven-3.9.11/lib/commons-codec-1.18.0.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-transport-http-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-spi-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/httpcore-4.4.16.jar inflating: /opt/apache-maven-3.9.11/lib/wagon-http-3.5.3.jar inflating: /opt/apache-maven-3.9.11/lib/org.eclipse.sisu.plexus-0.9.0.M4.jar inflating: /opt/apache-maven-3.9.11/lib/jansi-2.4.2.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-transport-file-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/maven-plugin-api-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/plexus-interpolation-1.28.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-transport-wagon-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/plexus-utils-3.6.0.jar inflating: /opt/apache-maven-3.9.11/lib/plexus-cipher-2.0.jar inflating: /opt/apache-maven-3.9.11/lib/plexus-sec-dispatcher-2.0.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-provider-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/maven-shared-utils-3.4.2.jar inflating: /opt/apache-maven-3.9.11/lib/wagon-file-3.5.3.jar inflating: /opt/apache-maven-3.9.11/lib/guava-33.4.8-jre.jar inflating: /opt/apache-maven-3.9.11/lib/gson-2.13.1.jar inflating: /opt/apache-maven-3.9.11/lib/asm-9.8.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-api-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-util-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/maven-embedder-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/maven-settings-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/error_prone_annotations-2.38.0.jar inflating: /opt/apache-maven-3.9.11/lib/plexus-component-annotations-2.2.0.jar inflating: /opt/apache-maven-3.9.11/lib/javax.inject-1.jar inflating: /opt/apache-maven-3.9.11/lib/maven-model-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/failureaccess-1.0.3.jar inflating: /opt/apache-maven-3.9.11/lib/maven-builder-support-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/maven-repository-metadata-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/maven-resolver-impl-1.9.24.jar inflating: /opt/apache-maven-3.9.11/lib/wagon-http-shared-3.5.3.jar inflating: /opt/apache-maven-3.9.11/lib/httpclient-4.5.14.jar inflating: /opt/apache-maven-3.9.11/lib/maven-core-3.9.11.jar inflating: /opt/apache-maven-3.9.11/lib/commons-cli-1.9.0.jar inflating: /opt/apache-maven-3.9.11/lib/maven-model-builder-3.9.11.jar [root@yfw tmp]# sudo ln -s /opt/apache-maven-3.9.11 /opt/maven [root@yfw tmp]# sudo tee /etc/profile.d/maven.sh << 'EOF' > export M2_HOME=/opt/maven > export PATH=$M2_HOME/bin:$PATH > EOF export M2_HOME=/opt/maven export PATH=$M2_HOME/bin:$PATH [root@yfw tmp]# source /etc/profile.d/maven.sh [root@yfw tmp]# mvn -version Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) Maven home: /opt/maven Java version: 1.8.0_312, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre Default locale: en_US, platform encoding: ANSI_X3.4-1968 OS name: "linux", version: "4.18.0-348.7.1.el8_5.x86_64", arch: "amd64", family: "unix" [root@yfw tmp]# ls /usr/lib/jvm/ | grep -i openjdk-11 java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64 jre-11-openjdk-11.0.13.0.8-4.el8_5.x86_64 [root@yfw tmp]# mvn -version Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) Maven home: /opt/maven Java version: 1.8.0_312, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre Default locale: en_US, platform encoding: ANSI_X3.4-1968 OS name: "linux", version: "4.18.0-348.7.1.el8_5.x86_64", arch: "amd64", family: "unix" [root@yfw tmp]# sudo tee /etc/profile.d/java-maven.sh << 'EOF' > # 设置 Java 11 为默认 JDK > export JAVA_HOME=/usr/lib/jvm/java-11-openjdk > > # 强制 Maven 使用 UTF-8 编码(解决 ANSI_X3.4-1968 问题) > export MAVEN_OPTS="-Dfile.encoding=UTF-8" > > # Maven 路径 > export M2_HOME=/opt/maven > export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH > > echo "✅ JAVA_HOME: $JAVA_HOME" > echo "✅ Maven home: $M2_HOME" > echo "✅ Java version: $(java -version 2>&1 | head -n 1)" > EOF # 设置 Java 11 为默认 JDK export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 强制 Maven 使用 UTF-8 编码(解决 ANSI_X3.4-1968 问题) export MAVEN_OPTS="-Dfile.encoding=UTF-8" # Maven 路径 export M2_HOME=/opt/maven export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH echo "✅ JAVA_HOME: $JAVA_HOME" echo "✅ Maven home: $M2_HOME" echo "✅ Java version: $(java -version 2>&1 | head -n 1)" [root@yfw tmp]# [root@yfw tmp]# # 删除旧的仅 Maven 配置(避免冲突) [root@yfw tmp]# sudo rm -f /etc/profile.d/maven.sh [root@yfw tmp]# [root@yfw tmp]# # 使用新的 java-maven.sh(上面已创建) [root@yfw tmp]# ls /etc/profile.d/java-maven.sh /etc/profile.d/java-maven.sh [root@yfw tmp]# cd ~ [root@yfw ~]# git clone https://github.com/igniterealtime/openfire-restAPI-plugin.git Cloning into 'openfire-restAPI-plugin'...
10-04
你已经完成了 **Maven 3.9.11 的安装**,并且也创建了正确的环境变量脚本 `/etc/profile.d/java-maven.sh` 来设置: - `JAVA_HOME=/usr/lib/jvm/java-11-openjdk`(✅ 正确指向 Java 11) - `MAVEN_OPTS="-Dfile.encoding=UTF-8"`(✅ 解决编码问题) - 将 `$JAVA_HOME/bin` 和 `$M2_HOME/bin` 加入 `PATH` 但是!你在执行完 `sudo tee ... << 'EOF'` 后,并没有运行: ```bash source /etc/profile.d/java-maven.sh ``` 所以新的环境变量 **还没有生效**! --- ## ✅ 第一步:立即加载新配置 ```bash source /etc/profile.d/java-maven.sh ``` 你现在应该看到类似输出: ```text ✅ JAVA_HOME: /usr/lib/jvm/java-11-openjdk ✅ Maven home: /opt/mavenJava version: openjdk version "11.0.13" 2021-10-19 LTS ``` --- ## ✅ 第二步:验证 Java 版本已切换为 Java 11 ```bash java -version javac -version echo $JAVA_HOME ``` 预期输出: ```text openjdk version "11.0.13" 2021-10-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode) javac 11.0.13 /usr/lib/jvm/java-11-openjdk ``` --- ## ✅ 第三步:确认 Maven 使用的是 Java 11 + UTF-8 ```bash mvn -version ``` 🎯 理想输出应是: ```text Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) Maven home: /opt/maven Java version: 11.0.13, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64 Default locale: en_US, platform encoding: UTF-8 ← 关键!不再是 ANSI_X3.4-1968 OS name: "linux", version: "4.18.0-348.7.1.el8_5.x86_64", arch: "amd64", family: "unix" ``` 如果还是显示 Java 8,请检查以下几点: ### 🔍 排查点 1:是否有其他脚本覆盖了 JAVA_HOME? 查看当前 shell 是否被其他地方设置了旧的 `JAVA_HOME`: ```bash echo $JAVA_HOME ``` 如果是 `/usr/lib/jvm/java-1.8.0-openjdk...`,说明有别的配置文件在后面加载了旧值。 查找可能干扰的文件: ```bash grep -r "JAVA_HOME" /etc/profile.d/ ~/.bashrc ~/.profile 2>/dev/null ``` 删除或注释掉所有设置 Java 8 的行。 --- ### 🔍 排查点 2:系统默认 `java` 命令是否仍指向 Java 8? ```bash which java readlink -f $(which java) ``` 如果结果包含 `java-1.8.0-openjdk`,说明系统的默认 `java` 没有通过 `alternatives` 正确注册。 你可以用 `alternatives` 设置默认 Java: ```bash # 注册 Java 11 到 alternatives 系统 sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java 1 sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/javac 1 # 交互式选择默认版本(可选) sudo alternatives --config java sudo alternatives --config javac ``` --- ## ✅ 最终确认:你现在可以安全编译 Openfire 插件 你刚刚已经克隆了仓库: ```bash cd openfire-restAPI-plugin git checkout tags/v2.2.0 -b build-v2.2.0 ``` 确保 `pom.xml` 中的关键属性如下: ```xml <properties> <openfire.version>4.9.2</openfire.version> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> ``` 然后开始构建: ```bash mvn clean package ``` ✅ 成功后你会看到: ```text [INFO] BUILD SUCCESS ``` 生成的插件位于: ```text target/restapi-2.2.0.jar ``` 将它复制到 Openfire 插件目录: ```bash cp target/restapi-2.2.0.jar /opt/openfire/plugins/ ``` 稍等片刻,Openfire 会自动解压并加载该插件。 --- ## 📌 总结:你现在完成的所有步骤 | 步骤 | 内容 | |------|------| | 1 | 下载并解压 Maven 3.9.11(ZIP 格式) | | 2 | 创建软链接 `/opt/maven -> /opt/apache-maven-3.9.11` | | 3 | 创建统一环境变量脚本 `/etc/profile.d/java-maven.sh` | | 4 | 设置 `JAVA_HOME`, `MAVEN_OPTS`, `PATH` | | 5 | 删除冲突的旧脚本 `/etc/profile.d/maven.sh` | | 6 | 执行 `source` 加载新环境 | | 7 | 验证 `java -version`, `mvn -version` 正确使用 Java 11 + UTF-8 | | 8 | 克隆并成功构建 Openfire REST API v2.2.0 插件 | 🎉 完全符合生产级构建要求! --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值