CentOS 8 安装 Apache XMLBeans 指南
本指南在 CentOS Linux 8(8.4.2105)服务器上实测了 EOL 源修复(vault 403 改用阿里云 centos-vault)、JDK 17/JDK 8 双基线安装、Maven 依赖与 jar 直用两条引入路径,全部命令与回显真实可复现。
CentOS 8 安装 Apache XMLBeans 指南
目标:在 CentOS Linux 8 服务器上完成 Apache XMLBeans 5.4.1 的安装与验证:修复 EOL 软件源、安装 JDK 17(附 JDK 8 兼容实测)、以 Maven 依赖与官方 jar 直用两种方式引入 XMLBeans,全部步骤实测通过。
一、环境信息
本文所有命令与回显均来自以下真实服务器环境,实测时间 2026-10-15:
# head -4 /etc/os-release
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
# cat /etc/centos-release
CentOS Linux release 8.4.2105 (Core)
# uname -m
x86_64
XMLBeans 是纯 Java 的 XML 绑定框架(把 XML 与 XSD 编译为强类型 Java 类),不是常驻服务,验证标准为:java/javac/mvn 可用、依赖可解析、示例代码可编译运行。实测版本为 Apache XMLBeans 5.4.1(Maven Central 最新 release,坐标 org.apache.xmlbeans:xmlbeans)。
- 工作根目录:
/work(示例 XSD 与产物统一放/work/schema、/work/mvn-demo) - 本环境默认 Java 是 1.8(见 4.2 节),本文同时实测 JDK 17 优先方案与 JDK 8 回退方案
二、前置条件
- root 权限;服务器可访问互联网。
- XMLBeans 构件来源为 Maven Central(
repo1.maven.org):
# curl -sI https://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/ | head -1
HTTP/2 200
- 可访问阿里云镜像站
mirrors.aliyun.com(第四节的换源依赖它):
# curl -sI https://mirrors.aliyun.com/centos-vault/ | head -1
HTTP/2 200
- 磁盘空间不低于 2 GB。
CentOS 8 已于 2021-12-31 停止维护,原官方源(mirrorlist.centos.org)已停止解析,第四节的"修复软件源"是本指南的前置步骤,也是 CentOS 8 平台特有的必踩坑。
三、版本选型说明
以 Maven Central 实际元数据为准(https://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/maven-metadata.xml):
<latest>5.4.1</latest>
<release>5.4.1</release>
<lastUpdated>20260923082850</lastUpdated>
| 版本线 | 最后版本 | 特征 | 是否建议 |
|---|---|---|---|
| 2.x | 2.6.0 | 历史架构(2004~2012),JDK 5 时代 | 仅维护遗留系统 |
| 3.x | 3.1.0 | 独立为 Apache 项目后的过渡版本 | 不建议新项目 |
| 4.x | 4.0.0 | API 重构起点,基线 Java 8 | 存量升级过渡 |
| 5.x | 5.4.1 | 基线 Java 8(字节码 major=52 实测)、日志用 log4j-api | 推荐 |
本文实际采用 5.4.1。它对 JDK 的最低要求是 Java 8(jar 内 XmlObject.class 实测 major version: 52,见 4.4 节),因此 5.x 官方基线"JDK 8+"在本环境两条路都通:JDK 17(本节实测优先)与 JDK 8(第五节实测回退)。
💡 技术拓展:同为"XSD → Java 绑定"方案,JAXB 在 JDK 11+ 被移出 JDK 需外挂依赖,而 XMLBeans 保持独立发布且附带运行期类型系统自省(SchemaType)与完整游标(XmlCursor);DOM4j/JDOM 只有树模型无 Schema 强类型。生产选型建议 XMLBeans 5.4.1 或 JAXB 2.3.x(JDK 8 环境),本文选前者。
四、方案 A:Maven 依赖安装(推荐)
4.1 修复 EOL 软件源
先复现故障(新装的 CentOS 8 直接 dnf makecache 会失败):
# dnf makecache
CentOS Linux 8 - AppStream 1.6 kB/s | 462 B 00:00
Errors during downloading metadata for repository 'appstream':
- Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock
Error: Failed to download metadata for repo 'appstream'.
(baseos、extras 仓库同样报错,dnf 最终返回非 0。)原因是 mirrorlist.centos.org 域名已停止解析。官方修复建议是切换 vault.centos.org,但实测该站对直接访问返回 403:
# curl -sI https://vault.centos.org/8.5.2111/BaseOS/x86_64/os/repodata/repomd.xml | head -1
HTTP/2 403
# curl -sI https://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/x86_64/os/repodata/repomd.xml | head -1
HTTP/2 200
结论:改用阿里云 centos-vault 镜像。仓库文件中 baseurl 模板是 http://mirror.centos.org/$contentdir/$releasever/...,替换主机并把 $releasever 固定到 8.5.2111(CentOS Linux 8 的最后一个发布快照,$releasever 默认值 8 在 vault 目录里不存在):
# echo '8.5.2111' > /etc/dnf/vars/releasever
# sed -i -e 's|mirrorlist=|#mirrorlist=|g' \
> -e 's|#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.aliyun.com/centos-vault|g' \
> /etc/yum.repos.d/CentOS-Linux-*.repo
# grep -A3 '^\[appstream\]' /etc/yum.repos.d/CentOS-Linux-AppStream.repo
[appstream]
name=CentOS Linux $releasever - AppStream
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
baseurl=https://mirrors.aliyun.com/centos-vault/$releasever/AppStream/$basearch/os/
为什么固定 8.5.2111 而不是本机自带的 8.4.2105:实测阿里云的
centos-vault/8.4.2105快照不完整——dnf list available 'java-1.8.0-openjdk*'只列出 accessibility/demo/javadoc 等 7 个包,核心的java-1.8.0-openjdk、java-1.8.0-openjdk-devel与maven都"No matching Packages to list";而 8.5.2111 快照完整(下文三组包均可用)。8.5.2111 是该系列的最终快照,包内容与 8.4 同源演进,兼容无虞。
重建缓存验证:
# dnf makecache
CentOS Linux 8.5.2111 - AppStream 269 kB/s | 8.4 MB 00:32
CentOS Linux 8.5.2111 - BaseOS 94 kB/s | 9.2 MB 01:39
Metadata cache created.
4.2 安装 JDK 17(优先)与 Maven
el8 仓库里 java-17-openjdk 在 8.5 快照中可用(17.0.1):
# dnf list available 'java-17-openjdk*'
...
java-17-openjdk-jmods.x86_64 1:17.0.1.0.12-2.el8_5 appstream
java-17-openjdk-src.x86_64 1:17.0.1.0.12-2.el8_5 appstream
java-17-openjdk-static-libs.x86_64 1:17.0.1.0.12-2.el8_5 appstream
安装 JDK 17 与 Maven(本文另装 JDK 8 用于第五节回退实测):
# dnf install -y java-17-openjdk-devel java-1.8.0-openjdk-devel maven
...
# rpm -q java-17-openjdk-devel java-1.8.0-openjdk-devel maven
java-17-openjdk-devel-1:17.0.1.0.12-2.el8_5.x86_64
java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64
maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch
重复执行会得到确认回显(无需重复安装):
# dnf install -y java-17-openjdk-devel maven
...
Package java-17-openjdk-devel-1:17.0.1.0.12-2.el8_5.x86_64 is already installed.
Package maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch is already installed.
Nothing to do.
4.3 el8 Maven 必须显式 JAVA_HOME
el8 的 mvn 在没有 JAVA_HOME 时回落到 PATH 里的 java,而 alternatives 默认指向 JDK 8:
# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
# alternatives --display java | head -2
java - status is auto.
link currently points to /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre/bin/java
于是不设 JAVA_HOME 时 Maven 实际用的是 JDK 8:
# mvn -v
Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/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: "6.8.0-138-generic", arch: "amd64", family: "unix"
显式指向 JDK 17 后才正确:
# export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
# mvn -v | head -4
Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 17.0.1, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
Default locale: en_US, platform encoding: ANSI_X3.4-1968
持久化建议写入 /etc/profile.d/jdk17.sh:export JAVA_HOME=/usr/lib/jvm/java-17-openjdk。若工程必须留在 JDK 8,则不要设置 maven.compiler.release=17(见 4.6 节实测报错)。
4.4 创建工程并引入依赖
# mkdir -p /work/mvn-demo/src/main/java/demo
# cd /work/mvn-demo
/work/mvn-demo/pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>demo</groupId>
<artifactId>xmlbeans-demo</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>17</maven.compiler.release>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>12.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
</plugin>
</plugins>
</build>
</project>
Maven 3.5.4 默认绑定的 compiler 插件不认识 --release 参数,必须显式固定 maven-compiler-plugin 3.11.0(该插件要求 Maven 3.2.5+,3.5.4 满足)。
4.5 最小验证代码
/work/mvn-demo/src/main/java/demo/GenericDemo.java:
package demo;
import org.apache.xmlbeans.SimpleValue;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
import javax.xml.namespace.QName;
import java.io.File;
public class GenericDemo {
static final String NS = "http://example.com/order";
static final QName Q_ORDER = new QName(NS, "order");
static final QName Q_CUSTOMER = new QName(NS, "customer");
static final QName Q_EMAIL = new QName(NS, "email");
static final QName Q_ID = new QName("", "id");
public static void main(String[] args) throws Exception {
XmlObject doc = XmlObject.Factory.parse(new File("/work/schema/order.xml"));
System.out.println("解析完成,schemaType = " + doc.schemaType());
XmlObject order = doc.selectChildren(Q_ORDER)[0];
System.out.println("selectChildren(order) 命中 = " + doc.selectChildren(Q_ORDER).length);
System.out.println("selectAttribute(id).getStringValue() = "
+ ((SimpleValue) order.selectAttribute(Q_ID)).getStringValue());
XmlObject email = order.selectChildren(Q_CUSTOMER)[0].selectChildren(Q_EMAIL)[0];
System.out.println("customer/email 文本值 = " + ((SimpleValue) email).getStringValue());
System.out.println("缩进序列化首行 = "
+ doc.xmlText(new XmlOptions().setSavePrettyPrint()).split("\n")[0]);
}
}
配套示例 /work/schema/order.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ord:order xmlns:ord="http://example.com/order" id="A-2026-1015" date="2026-10-15">
<ord:customer vip="true">
<ord:name>张伟</ord:name>
<ord:email>zhangwei@example.com</ord:email>
</ord:customer>
<ord:item sku="SKU-1001" qty="2">
<ord:name>机械键盘</ord:name>
<ord:price>399.0</ord:price>
</ord:item>
</ord:order>
4.6 编译与运行验证
JAVA_HOME 正确指向 JDK 17 时编译成功:
# export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
# cd /work/mvn-demo && mvn -B clean compile
...
[INFO] --- maven-compiler-plugin:3.11.0:compile (default-compile) @ xmlbeans-demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files with javac [debug release 17] to target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
若忘记设置 JAVA_HOME(Maven 落回 JDK 8),同一工程会真实报错:
# unset JAVA_HOME && mvn -B clean compile
...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project xmlbeans-demo: Fatal error compiling: invalid flag: --release -> [Help 1]
这就是"el8 Maven 需显式 JAVA_HOME"的完整含义:mvn 不会自己找 JDK 17,--release 17 这类参数只有 JDK 9+ 的 javac 才认识。
确认 XMLBeans 基线(JDK 17 上运行 scomp 生成、javap 反查字节码版本):
# javap -v -cp /work/xmlbeans-5.4.1.jar org.apache.xmlbeans.XmlObject 2>/dev/null | grep -m1 major
major version: 52
major version: 52 即 Java 8 字节码,所以 5.4.1 在 JDK 8 上同样可加载运行(第五节实测)。
运行验证(用 /root/.m2 仓库中的 jar 拼类路径):
# export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
# M2=~/.m2/repository
# java -Dfile.encoding=UTF-8 -cp target/classes:$M2/org/apache/xmlbeans/xmlbeans/5.4.1/xmlbeans-5.4.1.jar:$M2/org/apache/logging/log4j/log4j-api/2.26.1/log4j-api-2.26.1.jar demo.GenericDemo
解析完成,schemaType = N=
selectChildren(order) 命中 = 1
selectAttribute(id).getStringValue() = A-2026-1015
customer/email 文本值 = zhangwei@example.com
缩进序列化首行 = <?xml version="1.0" encoding="UTF-8"?>
验证通过。schemaType = N= 表示类路径上没有该文档的 Schema 类型系统 jar,解析退化为通用 XmlObject(scomp 生成类型 jar 后会显示 D=order@http://example.com/order,见《Apache XMLBeans 5.4.1 快速入门与集成示例》第四节)。
五、方案 B:官方 jar 直用与 scomp 直调(JDK 8 也可用)
5.1 方案说明
5.x 不再发布传统 bin 分发包:downloads.apache.org/xmlbeans/ 已下线(404),archive.apache.org/dist/xmlbeans/binaries/ 最新仅到 2.6.0。5.x 的权威"安装版"就是 Maven Central 的 xmlbeans-5.4.1.jar——scomp 编译器也内置其中(主类 org.apache.xmlbeans.impl.tool.SchemaCompiler)。
💡 技术拓展:jar 内
org.apache.xmlbeans.impl.tool.XMLBean是 Ant 任务类(继承org.apache.tools.ant.taskdefs.MatchingTask,实测无 main 方法);命令行入口是同包SchemaCompiler。旧资料"找 bin/scomp 脚本"的思路对 5.x 已失效。
5.2 下载与校验
# mkdir -p /work && cd /work
# curl -sO https://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/5.4.1/xmlbeans-5.4.1.jar
# curl -sO https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.26.1/log4j-api-2.26.1.jar
# curl -sO https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/12.10/Saxon-HE-12.10.jar
# ls -l xmlbeans-5.4.1.jar log4j-api-2.26.1.jar Saxon-HE-12.10.jar
-rw-r--r-- 1 root root 2227616 Oct 15 11:44 xmlbeans-5.4.1.jar
-rw-r--r-- 1 root root 351428 Oct 15 11:44 log4j-api-2.26.1.jar
-rw-r--r-- 1 root root 5793277 Oct 15 11:44 Saxon-HE-12.10.jar
# sha1sum xmlbeans-5.4.1.jar
7a7f86b1c0b4cf30081d0c99ec8f7303208d555e xmlbeans-5.4.1.jar
# curl -s https://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/5.4.1/xmlbeans-5.4.1.jar.sha1
7a7f86b1c0b4cf30081d0c99ec8f7303208d555e
三个 jar 的 SHA1 实测与 Maven Central 官方 .sha1 一致:
| 文件 | SHA1 |
|---|---|
| xmlbeans-5.4.1.jar | 7a7f86b1c0b4cf30081d0c99ec8f7303208d555e |
| log4j-api-2.26.1.jar | b9864ed8d0c01f65f3b0bf70f1447e5cc1b49c24 |
| Saxon-HE-12.10.jar | 1d6492dbfa32ddb2cd432fa3fbb940bf8137a5d2 |
5.3 JDK 8 直跑验证(回退方案实测)
XMLBeans 5.4.1 字节码为 Java 8(major=52),生成的类型 jar 同样如此,所以在本机默认的 JDK 8 上也能完整使用。用 JDK 8 的 javac 直接编译示例(XSD 与演示类来自第三节工程):
# cd /work
# mkdir -p out-jdk8
# javac -encoding UTF-8 -cp xmlbeans-5.4.1.jar:log4j-api-2.26.1.jar:order-xmlbeans.jar:Saxon-HE-12.10.jar:xmlresolver-5.3.3.jar -d out-jdk8 mvn-demo/src/main/java/demo/*.java
# echo $?
0
# java -Dfile.encoding=UTF-8 -cp out-jdk8:xmlbeans-5.4.1.jar:log4j-api-2.26.1.jar:order-xmlbeans.jar demo.TypedDemo
id = A-2026-1015 date = Thu Oct 15 00:00:00 GMT 2026
customer = 张伟 <zhangwei@example.com> vip = true
地址 = 广东省 深圳市 科技园南路 88 号
item SKU-1001 qty=2 price=399.0 name=机械键盘
(order-xmlbeans.jar 是 scomp 编译 /work/schema/order.xsd 的产物,见 5.4;TypedDemo 源码见《Apache XMLBeans 5.4.1 快速入门与集成示例》第四节。)
5.4 scomp 直调:XSD → jar
# cd /work
# java -cp xmlbeans-5.4.1.jar:log4j-api-2.26.1.jar org.apache.xmlbeans.impl.tool.SchemaCompiler -out order-xmlbeans.jar schema/order.xsd
Time to build schema type system: 0.454 seconds
Time to generate code: 0.047 seconds
Time to compile code: 0.758 seconds
Compiled types to: order-xmlbeans.jar
# echo $?
0
注意:scomp 内部调用 javax.tools 编译生成源码,必须在 JDK(javac 所在)而非仅 JRE 上运行;本节在 JDK 8 上实测通过,同命令在 JDK 17 上耗时 1.0 秒左右(0.387/0.048/1.0),详见《Apache XMLBeans 5.4.1 scomp 编译与进阶实战详解》。
六、方案对比与选择建议
| 维度 | 方案 A:Maven 依赖 | 方案 B:jar 直用 |
|---|---|---|
| 安装成本 | 换源后 dnf install maven 即可 | 手工下载 3~4 个 jar 并维护类路径 |
| 传递依赖 | 自动解析(log4j-api 2.26.1、xmlresolver 5.3.3) | 手工补齐,缺一个就 NoClassDefFoundError |
| 版本升级 | 改 pom 版本号 | 重新下载替换 |
| JDK 8 场景 | 可用(compiler 插件改 source/target 1.8) | 可用(本节实测) |
| 适用场景 | 常规 Java 工程 | 离线构建机、CI 沙箱、教学演示 |
| 本文结论 | 生产首选 | 离线补充 |
七、配置说明
7.1 JAVA_HOME 与多 JDK
el8 多 JDK 共存靠 alternatives,默认指向 JDK 8(见 4.3 节回显)。生产脚本建议显式导出:
# echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' > /etc/profile.d/jdk17.sh
# source /etc/profile.d/jdk17.sh
# echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk
需要临时用 JDK 8 跑某个工具时,直接用绝对路径调用:/usr/lib/jvm/java-1.8.0-openjdk/bin/java,避免改 alternatives。
7.2 日志与编码
运行期 Log4j API could not find a logging provider. 提示表示仅有日志 API 无实现,生产环境补 org.apache.logging.log4j:log4j-core:2.26.1 即可消除。中文场景必须双保险:编译 javac -encoding UTF-8、运行 -Dfile.encoding=UTF-8——本环境 mvn -v 显示 platform encoding: ANSI_X3.4-1968(POSIX locale),不加参数中文会乱码。
八、多版本管理
JDK 层由 alternatives 管理(alternatives --config java 可交互切换);jar 层版本由 Maven 仓库隔离:
# ls -1 ~/.m2/repository/org/apache/xmlbeans/xmlbeans/
2.6.0
5.4.1
(多版本共存演示:mvn -q -B dependency:get -Dartifact=org.apache.xmlbeans:xmlbeans:2.6.0 后即可见两个版本目录,切换只需改 pom 的 <version>。)
注意 2.6.0 与 5.x 的 API 存在代差(如 5.x 的 XmlObject 上已无 getStringValue(),取文本值需 (SimpleValue) obj).getStringValue()),不要在同一工程内混用两个版本线。
九、常见问题(FAQ)
Q1:dnf makecache 报 Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/...。
CentOS 8 EOL 后官方 mirrorlist 已下线,按 4.1 节换阿里云 centos-vault 并固定 releasever=8.5.2111。
Q2:换 vault.centos.org 后返回 403。
实测 curl -sI https://vault.centos.org/.../repomd.xml 返回 HTTP/2 403,直连该站不可用;改用 mirrors.aliyun.com/centos-vault(实测 HTTP/2 200)。
Q3:Maven 编译报 Fatal error compiling: invalid flag: --release。
Maven 实际跑在 JDK 8 上(未设 JAVA_HOME),而 --release 是 JDK 9+ 参数。按 4.3 节显式 export JAVA_HOME=/usr/lib/jvm/java-17-openjdk,或把 pom 改为 maven.compiler.source/target=1.8。
Q4:dnf list available maven 提示 No matching。
el8 的 Maven 以模块(module)发布,部分查询方式不显示模块包;直接 dnf install -y maven 即可(实测装到 maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22)。
Q5:运行报 NoClassDefFoundError: org/apache/logging/log4j/Logger。
jar 直用时漏带 log4j-api,类路径补上 log4j-api-2.26.1.jar 即可;Maven 方案由传递依赖自动解决。
十、卸载与清理
# rm -rf /work/mvn-demo /work/schema /work/out-jdk8
# rm -rf ~/.m2/repository/org/apache/xmlbeans ~/.m2/repository/net/sf/saxon ~/.m2/repository/org/xmlresolver
# dnf remove java-17-openjdk-devel java-1.8.0-openjdk-devel maven
dnf remove 会列出将移除的包数并要求确认(约 100 余个相关包,含依赖);保留 JDK 时仅执行前两步。/etc/dnf/vars/releasever 与换源 sed 不再需要时可还原。
十一、参考链接
- Maven Central:https://central.maven.org/maven2/org/apache/xmlbeans/xmlbeans/
- 官方站点:https://xmlbeans.apache.org/
- XmlObject Javadoc(5.4.1):https://xmlbeans.apache.org/apidocs/5.4.1/org/apache/xmlbeans/XmlObject.html
- CentOS Vault 使用说明:https://vault.centos.org/(本文改用阿里云镜像 https://mirrors.aliyun.com/centos-vault/)
- 本系列姊妹篇:《Apache XMLBeans 5.4.1 快速入门与集成示例》《Apache XMLBeans 5.4.1 XmlObject 与 Schema API 详解》《Apache XMLBeans 5.4.1 scomp 编译与进阶实战详解》