Ubuntu 22.04 安装 Apache Commons RDF 指南
在 Ubuntu 22.04 上从零安装 Apache Commons RDF 0.5.0,覆盖 JDK 17 与 Maven 环境、Maven 依赖与中央仓库 jar 直跑两种方案、sha1 校验、BlankNode 最小验证与卸载清理,命令回显均实测通过。
Ubuntu 22.04 安装 Apache Commons RDF 指南
目标:在 Ubuntu 22.04 上从零搭建 Apache Commons RDF 0.5.0 的开发与运行环境(JDK 17 + Maven 3.6.3),跑通 IRI/Literal/Graph 的最小验证程序,并给出 Maven 依赖与 jar 直跑两种落地方式;本文全部命令与回显均已在 Ubuntu 22.04 实测通过。
Apache Commons RDF 是 Apache Commons 项目下的 RDF 1.1 门面库:它只定义 Graph、Triple、IRI、Literal、BlankNode、Dataset 等接口,具体能力由绑定实现提供(自带的 simple 内存实现,或 Jena/RDF4J 绑定)。它是纯 Java 库,没有独立进程与常驻服务,安装的本质就是「装好 JDK/构建工具 → 引入依赖 → 写最小验证代码 → 编译运行」。需要特别注意:该项目为低频发布,截至本文实测日期,官方下载站最新发布版就是 2017-12-23 的 0.5.0,官方只发布源码包,二进制 jar 从 Maven 中央仓库获取。
一、环境信息
本节先固定可复现的基线环境,后续所有命令均在此环境执行。列出操作系统、架构、JDK、构建工具与组件版本,便于读者对照复现。
- 操作系统:Ubuntu 22.04.5 LTS(PRETTY_NAME="Ubuntu 22.04.5 LTS")
- 架构:x86_64
- JDK:OpenJDK 17.0.20.1(apt 包
openjdk-17-jdk) - 构建工具:Apache Maven 3.6.3
- 组件版本:commons-rdf-api 0.5.0 + commons-rdf-simple 0.5.0(解析/序列化另需 commons-rdf-jena 0.5.0)
- 官方下载目录:
https://downloads.apache.org/commons/rdf/(实测仅 source 包) - Maven 坐标:
org.apache.commons:commons-rdf-api:0.5.0、org.apache.commons:commons-rdf-simple:0.5.0 - 验证用工作目录:
/root/rdf-min(Maven 工程)、/root/rdf-min-jarrun(jar 直跑)
系统与架构确认(实时回显):
cat /etc/os-release | head -3
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
uname -m
x86_64
💡 说明:Commons RDF 是库而非服务,环境中不存在需要常驻的守护进程;「安装完成」的判定标准是可编译并运行一个调用其 API 的最小程序,而不是某个端口处于监听状态。
二、前置条件
本节说明安装前必须满足的条件。Ubuntu 22.04 自带可用的软件源,联网即可通过 apt 获取 JDK 与 Maven。
- 具有 root 或 sudo 权限的 Ubuntu 22.04 系统。
- 可访问 Ubuntu 官方软件源(
apt update能正常拉取索引)。 - 可访问 Maven 中央仓库
repo1.maven.org与 Apache 官方下载站downloads.apache.org(本文实测网络直连可达)。 - 至少 2 GB 可用磁盘空间(JDK + Maven + 依赖合计约 500 MB)。
网络连通性确认(实时回显):
curl -sI --max-time 20 https://repo1.maven.org/maven2/org/apache/commons/commons-rdf-api/0.5.0/ | head -1
HTTP/2 200
curl -sI --max-time 20 https://downloads.apache.org/commons/rdf/source/ | head -3
HTTP/1.1 200 OK
Date: Thu, 15 Oct 2026 02:44:22 GMT
Server: Apache
三、版本选型说明
本节回答「装哪个版本、装哪些模块」。Commons RDF 是低频发布项目,选型结论与其他高频 Commons 组件不同,需以实际查询为准。
官方下载目录 https://downloads.apache.org/commons/rdf/ 下只有 source/ 与 RELEASE-NOTES.txt,binaries/ 目录实测为空(无任何条目),即官方不提供二进制包。source/ 目录实测内容:
curl -s --max-time 30 https://downloads.apache.org/commons/rdf/source/ | grep -oE "apache-commons-rdf-[0-9.]+[^\"< ]*" | sort -u
apache-commons-rdf-0.5.0-source-release.zip
apache-commons-rdf-0.5.0-source-release.zip.asc
apache-commons-rdf-0.5.0-source-release.zip.sha256
发布说明 RELEASE-NOTES.txt 实测开头(确认版本与发布日期):
curl -s --max-time 30 https://downloads.apache.org/commons/rdf/RELEASE-NOTES.txt | head -5
# Apache Commons RDF
## 0.5.0 (2017-12-23)
This is the first release after graduation. Although there are not API changes
nor big improvements, it updates different core aspects and dependencies.
Maven 中央仓库的版本谱系实测(maven-metadata.xml 原文):
curl -s --max-time 30 https://repo1.maven.org/maven2/org/apache/commons/commons-rdf-api/maven-metadata.xml
<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>org.apache.commons</groupId>
<artifactId>commons-rdf-api</artifactId>
<versioning>
<latest>0.5.0</latest>
<release>0.5.0</release>
<versions>
<version>0.1.0-incubating</version>
<version>0.2.0-incubating</version>
<version>0.3.0-incubating</version>
<version>0.5.0</version>
</versions>
<lastUpdated>20171223012405</lastUpdated>
</versioning>
</metadata>
| 版本线 | 最新版 | 发布时间 | 状态 |
|---|---|---|---|
| 0.1.0 / 0.2.0 / 0.3.0-incubating | 孵化器版本 | 2014~2015 | 已过时,不建议新用 |
| 0.5.0(毕业后续版本) | 0.5.0 | 2017-12-23 | Maven Central latest/release,本文采用 |
模块清单与绑定实现选型(0.5.0 实测坐标,均可从中央仓库获取):
| 模块 | Maven 坐标 | 角色 | 传递依赖 |
|---|---|---|---|
| API | org.apache.commons:commons-rdf-api | 接口定义 jar,零第三方依赖 | 无 |
| Simple | org.apache.commons:commons-rdf-simple | 纯内存参考实现 | 仅 api |
| Jena 绑定 | org.apache.commons:commons-rdf-jena | 绑定 Jena 3.5.0,提供解析/序列化 | api、simple、jena-osgi 3.5.0 等 |
| RDF4J 绑定 | org.apache.commons:commons-rdf-rdf4j | 绑定 RDF4J 2.2.2 | api、rdf4j-model 等 |
| JSON-LD | org.apache.commons:commons-rdf-jsonld-java | JSON-LD 解析适配 | api、jsonld-java 0.11.1 |
维护状态必须如实说明:0.5.0 之后官方再无新版本(Maven Central lastUpdated=20171223012405),项目处于低频/停滞维护状态。这不影响「API 稳定 + 实现可插拔」的核心价值:接口面向 RDF 1.1 规范,自身能力面窄且稳定;需要新格式、新特性时由底层绑定(Jena/RDF4J)承担演进。本文实际采用 0.5.0,理由是它是 Maven Central 上 latest/release 的最终版本,且实测字节码主版本号为 52(Java 8),JDK 8/17 均可运行。
💡 技术拓展:Java 生态里做 RDF 的主流方案对比如下——
方案 定位 特点 适用场景 Commons RDF RDF 1.1 API 门面(接口层) 统一抽象,实现可插拔,API 面窄 希望与具体 RDF 库解耦的项目 Apache Jena 全功能 RDF/SPARQL 框架 解析/存储/推理/SPARQL 查询一站式 需要完整 RDF 平台与查询能力 Eclipse RDF4J RDF 存储/查询框架 Repository API、Sail 存储层 需要 RDF 数据库与存储后端集成 JSON-LD Java 单一格式解析库 只做 JSON-LD 仅处理 JSON-LD 的轻场景 本文采用 Commons RDF API + simple 内存实现做入门与验证,涉及解析/序列化时引入 jena 绑定(角色差异详见《Apache Commons RDF 0.5.0 RDF 解析与序列化示例详解》)。
版本确认为 0.5.0 的实测回显:
curl -s --max-time 30 https://repo1.maven.org/maven2/org/apache/commons/commons-rdf-api/maven-metadata.xml | grep -oE "<(latest|release)>[^<]+</(latest|release)>"
<latest>0.5.0</latest>
<release>0.5.0</release>
四、方案 A:Maven 依赖安装(在线,推荐)
本节面向常规 Java 项目开发,通过 apt 安装 JDK 与 Maven,再用 Maven 坐标引入 commons-rdf 依赖并跑通最小验证程序。这是最贴合工程实践的方式。
4.1 方案说明
方案 A 的链路是:apt 安装 openjdk-17-jdk 与 maven → 在 pom.xml 中声明 commons-rdf-api 与 commons-rdf-simple 0.5.0 → Maven 自动从中央仓库下载 jar 到本地仓库 → 编译并运行验证程序。优点是版本由 pom 统一管控、依赖自动解析;缺点是首次构建需要联网。
4.2 安装 JDK 17
Ubuntu 22.04 官方源内置 openjdk-17-jdk,直接安装即可:
apt-get update -qq && apt-get install -y openjdk-17-jdk
安装后确认版本:
java -version
openjdk version "17.0.20.1" 2026-08-18
OpenJDK Runtime Environment (build 17.0.20.1+1-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 17.0.20.1+1-1-22.04-Ubuntu, mixed mode, sharing)
重复执行安装命令可确认包版本(实测回显):
apt-get install -y openjdk-17-jdk maven 2>&1 | grep "already the newest"
maven is already the newest version (3.6.3-5).
openjdk-17-jdk is already the newest version (17.0.20.1+1-1~22.04).
验证点:java -version 能输出 17.0.x 即表示 JDK 就绪;若仍指向旧版本,用 update-alternatives --config java 选择 17。
4.3 安装 Maven
apt-get install -y maven
确认版本与 Maven 实际使用的 JDK:
mvn -version | head -3
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17.0.20.1, vendor: Ubuntu, runtime: /usr/lib/jvm/java-17-openjdk-amd64
验证点:Java version 一行显示 17.0.20.1,说明 Maven 已绑定到 JDK 17,无需额外设置 JAVA_HOME。
4.4 创建工程并引入依赖
建立一个最小 Maven 工程,pom.xml 中声明 api 与 simple 两个依赖。
mkdir -p /root/rdf-min/src/main/java
pom.xml(完整内容,文件路径 /root/rdf-min/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>rdf-min</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.commons</groupId>
<artifactId>commons-rdf-api</artifactId>
<version>0.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rdf-simple</artifactId>
<version>0.5.0</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>
逐项说明关键配置:
commons-rdf-api+commons-rdf-simple:入门与验证所需的最小组合,api 是接口,simple 是默认实现;两者传递依赖实测为零第三方 jar(见 4.6 节依赖树)。maven.compiler.release=17:按 JDK 17 语义编译;0.5.0 自身是 Java 8 字节码(major 52),JDK 8 环境把该值改回8即可。maven-compiler-plugin显式固定 3.11.0:Maven 3.6.3 默认绑定的 3.1 版插件不认识release属性,会按 source/target=1.5 编译并被 JDK 17 拒绝。
4.5 最小验证代码
验证程序 TermsCheck.java(文件路径 /root/rdf-min/src/main/java/TermsCheck.java)创建 IRI、Literal 与 Graph,完成一次「建图 → 查询 → 打印」闭环:
import org.apache.commons.rdf.api.Graph;
import org.apache.commons.rdf.api.IRI;
import org.apache.commons.rdf.api.Literal;
import org.apache.commons.rdf.api.RDF;
import org.apache.commons.rdf.api.Triple;
import org.apache.commons.rdf.simple.SimpleRDF;
public class TermsCheck {
public static void main(String[] args) {
RDF rdf = new SimpleRDF();
IRI alice = rdf.createIRI("http://example.org/people/alice");
IRI name = rdf.createIRI("http://xmlns.com/foaf/0.1/name");
Literal aliceName = rdf.createLiteral("Alice");
Graph g = rdf.createGraph();
g.add(alice, name, aliceName);
System.out.println("size=" + g.size());
for (Triple t : g.iterate()) {
System.out.println(t.getSubject().ntriplesString() + " "
+ t.getPredicate().ntriplesString() + " "
+ t.getObject().ntriplesString());
}
System.out.println("commons-rdf OK: " + rdf.getClass().getName());
}
}
程序要点:org.apache.commons.rdf.api.RDF 是 0.5.0 的工厂接口,new SimpleRDF() 得到内存实现;Graph.add(主语, 谓语, 宾语) 直接以三个术语建三元组;ntriplesString() 输出 N-Triples 规范形式,便于人眼核对。
💡 技术拓展:RDF 数据模型只有三种节点(IRI、Literal、BlankNode),一条三元组就是「主语-谓语-宾语」三个节点的组合,谓语必须是 IRI。上例的三元组语义是「alice 的名字是 Alice」,
http://xmlns.com/foaf/0.1/name是 FOAF 词表里约定俗成的「姓名」属性 IRI。相比关系表的行列模型,RDF 把一切数据都拆成这种最小陈述,便于跨数据集合并。
4.6 编译与运行验证
以 Maven 编译并确认依赖树:
cd /root/rdf-min && mvn -B clean compile 2>&1 | tail -9
[INFO] --- maven-compiler-plugin:3.11.0:compile (default-compile) @ rdf-min ---
[INFO] Changes detected - recompiling the module! :source
[INFO] Compiling 1 source file with javac [debug release 17] to target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.111 s
[INFO] Finished at: 2026-10-15T02:56:20Z
[INFO] ------------------------------------------------------------------------
cd /root/rdf-min && mvn -B dependency:tree 2>&1 | grep -E "rdf-min:jar|commons-rdf"
[INFO] demo:rdf-min:jar:1.0.0
[INFO] +- org.apache.commons:commons-rdf-api:jar:0.5.0:compile
[INFO] \- org.apache.commons:commons-rdf-simple:jar:0.5.0:compile
解读:依赖树中除工程自身外只有 api 与 simple 两个节点,api 零传递依赖、simple 仅依赖 api,不会拖入任何其他 jar。
运行:
cd /root/rdf-min
mvn -q -B dependency:build-classpath -Dmdep.outputFile=cp.txt
CP=$(cat cp.txt)
java -Dfile.encoding=UTF-8 -cp target/classes:$CP TermsCheck
size=1
<http://example.org/people/alice> <http://xmlns.com/foaf/0.1/name> "Alice"
commons-rdf OK: org.apache.commons.rdf.simple.SimpleRDF
结果解读:size=1 表明三元组已入图,第二行是 ntriplesString() 输出的 N-Triples 规范形式(IRI 尖括号包裹),末行确认工厂实现类为 SimpleRDF。这表示 commons-rdf 0.5.0 已在 JDK 17 上完整可用。
💡 说明:
-Dfile.encoding=UTF-8用于固定中文输出的字符集。若服务器LANG已为C.UTF-8或zh_CN.UTF-8,可省略;在默认POSIXlocale 下省略会出现中文乱码。
五、方案 B:Maven Central jar 直跑(离线友好)
本节面向没有 Maven/构建体系的场景。由于官方不发布二进制包,二进制 jar 统一从 Maven 中央仓库获取,用 javac + java 完成编译运行,不依赖任何构建工具。
5.1 方案说明
链路是:从 repo1.maven.org 下载 api 与 simple 两个 jar → 校验 sha1 → 用 javac -cp 编译源码 → 用 java -cp 运行。两个 jar 即为完整运行期依赖(实测 Graph/Dataset 全部能力无需其他 jar),适用于离线环境、脚本化部署或纯粹想「拿到 jar 就能用」的读者。
5.2 下载与完整性校验
mkdir -p /root/rdf-min-jarrun && cd /root/rdf-min-jarrun
curl -sO --max-time 60 https://repo1.maven.org/maven2/org/apache/commons/commons-rdf-api/0.5.0/commons-rdf-api-0.5.0.jar
curl -sO --max-time 60 https://repo1.maven.org/maven2/org/apache/commons/commons-rdf-simple/0.5.0/commons-rdf-simple-0.5.0.jar
ls -l *.jar
-rw-r--r-- 1 root root 22565 Oct 15 02:41 commons-rdf-api-0.5.0.jar
-rw-r--r-- 1 root root 36267 Oct 15 02:41 commons-rdf-simple-0.5.0.jar
校验 sha1(期望值与实测值必须逐字一致):
cd /root/rdf-min-jarrun
curl -sO --max-time 30 https://repo1.maven.org/maven2/org/apache/commons/commons-rdf-api/0.5.0/commons-rdf-api-0.5.0.jar.sha1
echo "期望: $(cat commons-rdf-api-0.5.0.jar.sha1)"
echo "实测: $(sha1sum commons-rdf-api-0.5.0.jar | awk '{print $1}')"
期望: df2d4451dee5b311cb4f51ced214dfaab5838291
实测: df2d4451dee5b311cb4f51ced214dfaab5838291
⚠️ 注意:若 sha1 不一致,说明下载包损坏或被篡改,须删除后重新下载;切勿跳过校验直接使用。
5.3 javac 编译与 java 运行
用两个 jar 作为编译与运行期 classpath:
cd /root/rdf-min-jarrun
cp /root/rdf-min/src/main/java/TermsCheck.java .
javac -encoding UTF-8 -cp commons-rdf-api-0.5.0.jar:commons-rdf-simple-0.5.0.jar -d out TermsCheck.java
java -Dfile.encoding=UTF-8 -cp out:commons-rdf-api-0.5.0.jar:commons-rdf-simple-0.5.0.jar TermsCheck
size=1
<http://example.org/people/alice> <http://xmlns.com/foaf/0.1/name> "Alice"
commons-rdf OK: org.apache.commons.rdf.simple.SimpleRDF
验证点:javac 无报错、java -cp 一行成功打印三行结果,且无 NoClassDefFoundError,说明 api + simple 两个 jar 即为完整运行期组合。
官方源码包(可选):如需查看官方源码,从 https://downloads.apache.org/commons/rdf/source/apache-commons-rdf-0.5.0-source-release.zip 下载(约 555 KB),解压后是完整的 Maven 多模块工程,可自行构建。
六、方案对比与选择建议
本节汇总两种方案的差异,给出选型建议。两种方案产出的是同一份 commons-rdf 0.5.0 代码,差别仅在获取与装配方式。
| 维度 | 方案 A:Maven 依赖 | 方案 B:中央仓库 jar 直跑 |
|---|---|---|
| 运行期依赖 | Maven 自动解析 | 手工把 jar 放入 classpath |
| 是否联网 | 首次构建需联网 | 仅下载时需要联网 |
| 依赖版本管控 | pom 统一声明,可锁版本 | 无,靠文件命名区分 |
| 多依赖协同(传递依赖) | 自动处理(如 jena 绑定的十余个 jar) | 需手工收集,仅适合 api+simple 组合 |
| 可复现产物 | mvn package 产出 jar | javac 产出 class + 引用 jar |
| 适用场景 | 常规工程开发 | 离线脚本、临时验证、无构建体系 |
选型建议:若项目有构建体系(Maven/Gradle),一律选方案 A,尤其后续要用 jena/rdf4j 绑定做解析序列化时,传递依赖必须交给 Maven 管理;若在无构建工具的老旧服务器上临时验证简单内存图操作,选方案 B。两者也可共存——用方案 A 开发、用方案 B 分发最小组合。
七、配置说明
本节说明 Commons RDF 使用中真正需要设置的「配置」。它是库而非服务,没有独立配置文件,全部行为通过代码参数或 JDK 环境变量控制。
环境变量 JAVA_HOME(Maven 依赖它定位 JDK)。默认会话中该变量为空(实测回显):
echo "JAVA_HOME=$JAVA_HOME"
JAVA_HOME=
此时 apt 版 Maven 仍能正常工作,是因为它按 PATH 中的 java(由 update-alternatives 指向 JDK 17,见 4.3 节 mvn -version 回显的 runtime 一行)完成 JDK 定位,不依赖 JAVA_HOME。若手工安装 JDK 或需要显式固定 JDK 路径,可显式导出(实测回显):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 && echo "JAVA_HOME=$JAVA_HOME"
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
逐项说明:
JAVA_HOME:Maven 定位 JDK 的优先来源。Ubuntu 官方源的 Maven 自带兼容逻辑,JAVA_HOME为空时按PATH中的java定位,实测无需手工设置即可构建;仅当手工安装 JDK 或 Maven 报「找不到 JDK」时,再显式导出该变量。- 运行期 classpath:api + simple 两个 jar 即为完整组合(5.3 节实测);引入 jena 绑定后则必须由 Maven 带全 jena-osgi 等十余个 jar,手工收集极易缺包。
- 代码级「参数」:语言标签(自动小写化)、数据类型 IRI、工厂实例的创建范围等均通过 API 入参控制,无外部配置文件,各 API 细节见《Apache Commons RDF 0.5.0 常用 API 与图操作详解》。
八、常见问题(FAQ)
Q1:createIRI 传什么值会抛异常?
实测两种行为:含空格等非法语法的字符串(如 not a valid iri with spaces)抛 IllegalArgumentException;而 not-a-valid-iri 这类裸相对引用会被接受(作为相对 IRI 引用处理)。需要强制绝对 IRI 时,在业务侧自行校验是否含协议前缀。
Q2:引入 commons-rdf-jena 后运行报 NoClassDefFoundError: org/apache/jena/riot/system/StreamRDF?
实测原因:只把 commons-rdf-jena-0.5.0.jar 放进 classpath,缺 Jena 运行时。jena 绑定的传递依赖包括 jena-osgi、httpclient-osgi、jsonld-java、jackson、commons-io 2.5、commons-csv、libthrift、slf4j-api 等十余个 jar,手工拼 classpath 极易缺包,务必用 Maven/Gradle 管理完整依赖树。
Q3:中文输出显示为乱码(问号)?
默认 POSIX locale 下 JVM 会用 ASCII 输出中文。解决:运行时加 -Dfile.encoding=UTF-8,或把系统 locale 调成 UTF-8(export LANG=C.UTF-8)。
Q4:commons-rdf 0.5.0 能不能跑在 JDK 8 上? 可以。实测其字节码主版本号为 52(Java 8),并在 Eclipse Temurin 1.8.0_504 上完成 TermsCheck 编译运行验证;JDK 8 与 17 均可,本文用 JDK 17 属于更高基线。
Q5:运行时打印 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" 是报错吗?
不是。这是引入 jena 绑定后(其依赖 slf4j-api 1.7.25 但未带日志实现)的提示,SLF4J 回退到 NOP 空实现,功能不受影响;需要日志时在 pom 里加 slf4j-simple 依赖即可,纯 api + simple 组合不会出现该提示。
九、卸载与清理
Commons RDF 本身不产生系统级安装,卸载即移除依赖与本地文件。
移除验证工程与下载的 jar:
rm -rf /root/rdf-min /root/rdf-min-jarrun
ls /root/rdf-min 2>&1
ls: cannot access '/root/rdf-min': No such file or directory
移除 Maven 本地仓库中的 commons-rdf(影响所有工程,慎用):
rm -rf $HOME/.m2/repository/org/apache/commons/commons-rdf-api \
$HOME/.m2/repository/org/apache/commons/commons-rdf-simple
卸载 JDK 与 Maven(仅当不再需要)。先以 -s 预演确认将删除的包,无误后真正执行:
apt-get -s purge -y openjdk-17-jdk maven
# 输出节选(实测首尾)
The following packages will be REMOVED:
maven* openjdk-17-jdk*
0 upgraded, 0 newly installed, 2 to remove and 2 not upgraded.
确认无误后真正卸载:
apt-get purge -y openjdk-17-jdk maven && apt-get autoremove -y
十、参考链接
- Apache Commons RDF 官方主页:https://commons.apache.org/proper/commons-rdf/
- Apache Commons RDF 官方下载目录(仅源码包):https://downloads.apache.org/commons/rdf/
- Commons RDF 0.5.0 发布说明:https://downloads.apache.org/commons/rdf/RELEASE-NOTES.txt
- Commons RDF Javadoc(API):https://commons.apache.org/proper/commons-rdf/javadocs/api-0.5.0/
- Maven 中央仓库坐标页:https://repo1.maven.org/maven2/org/apache/commons/commons-rdf-api/
- OpenJDK 17 安装包(Ubuntu 官方源):
apt-cache show openjdk-17-jdk