安装
import { Tabs, TabItem } from ‘@astrojs/starlight/components’;
| 项 | 要求 |
|---|---|
| JDK | 17 或更高(sourceCompatibility / targetCompatibility 均为 JavaVersion.VERSION_17) |
| 构建工具 | Gradle 9.2.1(仓库自带 wrapper,无需本地安装 Gradle) |
| 运行时第三方依赖 | 无强制依赖 |
znlp 主库在运行时不引入任何强制的第三方库。slf4j-api 与 log4j-api 都是 compileOnly:如果宿主应用提供了 SLF4J 或 Log4j2,znlp 会自动接入;如果都没有,内部的 base/logging 会退回到 JDK 自带的 java.util.logging。因此你不必为了用 znlp 而额外引入日志框架。
| 模块 | 坐标 | 说明 |
|---|---|---|
| 主库 | dev.znlp:znlp:0.1.0 |
全部 Java 代码 |
| 资源 | dev.znlp:znlp-resources:1.0.0 |
词典与模型文件,纯资源 jar,无 Java 源码 |
方式一:构建 jar 后直接依赖(推荐)
Section titled “方式一:构建 jar 后直接依赖(推荐)”最稳妥的方式,不依赖任何发布机制。
git clone git@codeup.aliyun.com:zaprt/znlp.gitcd znlp./gradlew :znlp:jar :znlp-resources:jar产物位置:
znlp/build/libs/znlp-0.1.0.jarznlp-resources/build/libs/znlp-resources-1.0.0.jar把这两个 jar 复制到你的项目(例如 libs/ 目录),然后声明文件依赖:
dependencies { implementation(files( "libs/znlp-0.1.0.jar", "libs/znlp-resources-1.0.0.jar" ))}dependencies { implementation files( 'libs/znlp-0.1.0.jar', 'libs/znlp-resources-1.0.0.jar' )}Maven 没有原生的文件依赖,需要先安装到本地仓库:
mvn install:install-file \ -Dfile=znlp/build/libs/znlp-0.1.0.jar \ -DgroupId=dev.znlp -DartifactId=znlp \ -Dversion=0.1.0 -Dpackaging=jar
mvn install:install-file \ -Dfile=znlp-resources/build/libs/znlp-resources-1.0.0.jar \ -DgroupId=dev.znlp -DartifactId=znlp-resources \ -Dversion=1.0.0 -Dpackaging=jar然后在 pom.xml 中声明,注意资源包的 scope 是 runtime:
<dependency> <groupId>dev.znlp</groupId> <artifactId>znlp</artifactId> <version>0.1.0</version></dependency><dependency> <groupId>dev.znlp</groupId> <artifactId>znlp-resources</artifactId> <version>1.0.0</version> <scope>runtime</scope></dependency>方式二:Gradle 复合构建
Section titled “方式二:Gradle 复合构建”如果 znlp 源码和你的项目在同一个工作区,可以让 Gradle 直接把它当作依赖解析,省去手动搬 jar。
在你的 settings.gradle.kts 中加入:
includeBuild("../znlp")然后正常声明坐标依赖:
dependencies { implementation("dev.znlp:znlp:0.1.0") runtimeOnly("dev.znlp:znlp-resources:1.0.0")}Gradle 会按 group + 项目名把坐标替换为源码项目。这样改 znlp 源码后不需要重新打 jar。
方式三:作为源码子项目引入
Section titled “方式三:作为源码子项目引入”把 znlp 和 znlp-resources 两个目录拷进你的工程,在 settings.gradle.kts 里 include 它们,再用 implementation(project(":znlp")) 依赖。适合需要深度定制或跟踪主干开发的场景,缺点是升级时要手动同步。
写一个最小类确认资源加载正常:
import dev.znlp.Znlp;
public class SmokeTest { public static void main(String[] args) { System.out.println(Znlp.segmentToStrings("自然语言处理")); }}期望输出类似 [自然语言, 处理]。
首次运行会明显偏慢:znlp 需要把核心词典、二元语法表等原始资源解析成缓存文件写入 data/cache/(其中二元语法表缓存约 40 MB)。之后的启动会直接读缓存。缓存目录可通过配置调整,详见配置与数据目录。