拓冰建站拓冰建站
首页 / 资讯中心 / 正文

LanceDB Java SDK 第三方依赖许可证清单(JAVA_THIRD_PARTY_LICENSES.md)解析与合规实践

向量数据库数据库人工智能后端【免费下载链接】lancedbDeveloper-friendly OSS embedded retrieval library for multimodal AI. Search More; Manage Less.项目地址https://gitcode.com/gh_mirrors/la/lancedb点击查看免费下载导读本文以 LanceDB 仓库中java/lancedb-core/JAVA_THIRD_PARTY_LICENSES.md为主体逐层拆解这份由 Maven 插件自动生成的第三方依赖许可证清单它记录了什么、如何生成、覆盖了哪些许可证类型以及这些依赖在 LanceDB Java SDK用于连接 LanceDB Cloud / Enterprise 的客户端中扮演的角色。读完本文你将掌握该清单的阅读方法、与 java/pom.xml 的对应关系以及如何在升级依赖后重新生成合规清单。一、这份清单是什么JAVA_THIRD_PARTY_LICENSES.md是一份按许可证类型分组的第三方依赖清单Group-By-License 形式文件开头的说明只有一句话List of third-party dependencies grouped by their license type.随后是十个许可证分组共 40 条依赖记录。它服务于 LanceDB 的Java 客户端模块lancedb-core。根据 lancedb-core/pom.xml 的模块描述该模块定位为 Utilities to work with LanceDB Cloud and Enterprise via Lance REST Namespace即通过 Lance REST Namespace 规范访问 LanceDB Cloud 与 Enterprise 的 Java 工具库。因此清单中的依赖与REST 客户端 Arrow 数据处理 JSON 序列化 HTTP 传输这条技术栈高度一致。值得注意的是仓库根目录下java/JAVA_THIRD_PARTY_LICENSES.md与java/lancedb-core/JAVA_THIRD_PARTY_LICENSES.md两份文件内容完全相同——这是同一份 Maven 插件配置在父 POM 与子模块中分别执行的产物详见下文如何生成一节。二、如何生成license-maven-plugin 配置解析这份清单不是手写的而是由codehaus 的license-maven-plugin版本 2.4.0在 Maven 构建过程中自动生成的。配置位于父 POM java/pom.xmlplugin groupIdorg.codehaus.mojo/groupId artifactIdlicense-maven-plugin/artifactId version2.4.0/version configuration outputDirectory${project.basedir}/outputDirectory thirdPartyFilenameJAVA_THIRD_PARTY_LICENSES.md/thirdPartyFilename fileTemplate/org/codehaus/mojo/license/third-party-file-groupByLicense.ftl/fileTemplate includedScopescompile,runtime/includedScopes excludedScopestest,provided/excludedScopes sortArtifactByNametrue/sortArtifactByName /configuration /plugin各配置项的作用如下配置项取值含义outputDirectory${project.basedir}输出到执行模块的根目录因此父模块与lancedb-core子模块各自生成一份同名文件thirdPartyFilenameJAVA_THIRD_PARTY_LICENSES.md生成的清单文件名fileTemplatethird-party-file-groupByLicense.ftl使用按许可证分组的 FreeMarker 模板即当前清单的组织形式includedScopescompile,runtime只统计编译期与运行期依赖含传递依赖excludedScopestest,provided测试期与 provided 作用域的依赖不进入清单sortArtifactByNametrue组内按构件名排序保证清单输出稳定、可 diff这说明清单中的依赖并非lancedb-core/pom.xml中显式声明的全部内容而是解析完传递依赖后、处于 compile/runtime 作用域的最终集合。例如 lancedb-core/pom.xml 显式声明了jackson-databind:2.17.1而清单中记录的是jackson-databind:2.15.2这正是传递依赖解析结果与直接声明不一致的典型体现——清单反映的是构建时实际生效的版本快照。重新生成的命令在java/目录下通过 Maven Wrapper 执行对应 goal 即可按上述配置重新生成# 在 java/ 目录下执行按 pom 配置重新生成第三方许可证清单 ./mvnw license:third-party # 完整构建Makefile 中的 build-lancedb 亦等价执行 spotless:apply install ./mvnw install -pl lancedb-core -am构建入口脚本为 java/mvnw相关目标定义见 java/Makefile。由于清单是点上的快照每次升级依赖如 Arrow、Jackson、HttpClient 版本后都应重新生成避免清单与Cargo.lock/uv.lock之外的 Java 依赖树脱节。三、许可证分组全览清单按 SPDX 声明原文分组共出现 10 个分组名。由于上游各库在 POM 中声明的许可证文本写法不一同一许可证出现了多种措辞如 Apache 2.0、Apache License 2.0、Apache-2.0、The Apache Software License, Version 2.0插件按原文分组而不做归一化这是阅读时需要注意的第一个坑。1. Apache 2.0 家族6 种写法、34 条记录分组名依赖artifactId:versionApache 2.0error_prone_annotations:2.28.0Apache License 2.0jackson-databind-nullable:0.2.6Apache License V2.0flatbuffers-java:23.5.26Apache License, Version 2.0commons-codec:1.15、httpclient5:5.2.1、httpcore5:5.2、httpcore5-h2:5.2、arrow-format:15.0.0、arrow-c-data:15.0.0、arrow-dataset:15.0.0、arrow-memory-core:15.0.0、arrow-memory-netty:15.0.0、arrow-vector:15.0.0、guava:33.3.1-jre、j2objc-annotations:3.0.0、netty-buffer:4.1.104.Final、netty-common:4.1.104.FinalApache-2.0commons-lang3:3.18.0、lance-namespace-apache-client:0.4.5、lance-namespace-core:0.4.5The Apache Software License, Version 2.0jsr305:3.0.2、failureaccess:1.0.2、listenablefuture、jackson-datatype-jsr310:2.16.0、jackson-module-jaxb-annotations:2.17.1、jackson-annotations:2.16.0、jackson-core:2.16.0、jackson-databind:2.15.2、jackson-jaxrs-base:2.17.1、jackson-jaxrs-json-provider:2.17.1、jar-jni:1.1.1、lance-core:2.0.02. Eclipse 系许可证EDL 1.0 / EPL 1.0分组名依赖EDL 1.0jakarta.activation-api:1.2.2Eclipse Distribution License - v 1.0eclipse-collections-api:11.1.0、eclipse-collections:11.1.0、jakarta.xml.bind-api:2.3.3Eclipse Public License - v 1.0eclipse-collections-api:11.1.0、eclipse-collections:11.1.0注意Eclipse Collections 系列API 与主库同时出现在 EDL 1.0 与 EPL 1.0 两个分组中——这是上游采用双许可证Dual-License发布的表现使用方可在两种许可中选择其一清单如实记录了两种声明。3. MIT分组名依赖The MIT Licensechecker-qual:3.43.0四、从清单反推 SDK 技术底座清单不是孤立的列表它与lancedb-core的源码实现一一对应可以从依赖倒推 SDK 各层能力Arrow 数据层arrow-vector、arrow-memory-netty、arrow-memory-core、arrow-format、arrow-dataset、arrow-c-data均 15.0.0承担列式数据的内存表示与 C Data Interface 互操作。父 POM 通过dependencyManagement统一以arrow.version15.0.0管理 Arrow 版本见 java/pom.xml子模块显式引入arrow-vector与arrow-memory-netty见 lancedb-core/pom.xml。HTTP 传输层Apache HttpClient 5httpclient5:5.2.1与 HttpComponents Corehttpcore5:5.2、httpcore5-h2:5.2是访问 LanceDB Cloud / Enterprise REST 接口的底层传输。pom 注释明确指出它们是为 LanceDB routes outside the Lance Namespace spec如 MemWAL LSM 写路径提供的传输层见 lancedb-core/pom.xml。JSON 序列化层Jackson 全家桶annotations/core/databind/datatype-jsr310/jaxrs 系列用于 REST 请求响应体的序列化其中jackson-datatype-jsr310支撑 Java 8 时间类型的 JSON 编解码。Lance 生态核心lance-core:2.0.0与lance-namespace-core:0.4.5、lance-namespace-apache-client:0.4.5分别提供 Lance 数据格式核心与由 OpenAPI 规范生成的 Namespace 客户端org.lance.namespace.LanceNamespace后者正是 java/README.md 中客户端初始化的入口类型。内存与序列化辅助Netty Buffer/CommonArrow 内存分配依赖、FlatBuffers Java APIArrow 格式底层、Guava 系列含 failureaccess、listenablefuture、jsr305、checker-qual、j2objc-annotations 等伴随构件。JNI 加载jar-jni:1.1.1QuestDB 的 Rust Maven 插件产物用于 JAR 内原生库的加载与 Java 模块内嵌 Rust 核心lance-core的架构吻合。这些依赖的实际使用可进一步在 LanceDbNamespaceClientBuilder.java 中印证构建器硬编码了 Cloud 端点模板https://%s.%s.api.lancedb.com与默认区域us-east-1说明该客户端面向远端 REST 服务其网络栈正是清单中的 HttpClient 5。五、许可证合规要点与清单维护作用域过滤是合规的关键includedScopescompile,runtime意味着测试框架JUnit、Mockito、SLF4J、Log4j2 等见 lancedb-core/pom.xml 的 test 依赖不会进入清单因为它们不随产物分发。审计许可证时只需关注 compile/runtime 集合这也是合规审查的准确范围。同一许可证、多种写法Apache 2.0 在清单中多达 6 种措辞合并统计时应按许可证实质归类而非按分组名计数反之 Eclipse Collections 的双许可EDL EPL则要避免重复计数或遗漏其一。版本以清单为准清单记录的是依赖解析后的实际版本如 jackson-databind 2.15.2 与 pom 声明的 2.17.1 不一致做漏洞扫描或合规复核时应以清单版本为基准。仓库级合规惯例LanceDB 对每个语言生态都维护了同类产物——Python 侧为表格形式的 PYTHON_THIRD_PARTY_LICENSES.mdNode.js 侧为 NODEJS_THIRD_PARTY_LICENSES.mdRust 侧为 RUST_THIRD_PARTY_LICENSES.html。Java 的这份 Markdown 清单与其他生态保持一致共同构成全仓库的第三方依赖合规证据链。重新生成时机升级 Arrow / Jackson / HttpClient / lance-core 等任一依赖、或修改lancedb-core的直接依赖声明后执行./mvnw license:third-party并提交更新后的两份清单父模块与子模块各一份即可保持合规状态可审计、可追溯。六、相关文件索引文件说明java/lancedb-core/JAVA_THIRD_PARTY_LICENSES.md本文主体lancedb-core 子模块的第三方许可证清单java/JAVA_THIRD_PARTY_LICENSES.md父模块生成的同内容清单java/pom.xmllicense-maven-plugin 的生成配置作用域、模板、输出位置java/lancedb-core/pom.xml模块直接依赖声明与模块职责描述java/README.mdJava 客户端初始化与 MemWAL LSM 写路径用法java/Makefile构建 / 测试 / 集成测试目标java/license_header.txt源码文件统一采用的 Apache-2.0 SPDX 头总结JAVA_THIRD_PARTY_LICENSES.md是 LanceDB Java SDK 的合规体检报告通过 license-maven-plugin 从 Maven 依赖树自动生成。阅读它时应以许可证实质 实际生效版本为视角结合 java/pom.xml 的生成配置与 lancedb-core/pom.xml 的直接依赖声明即可完整还原 SDK 的技术底座Arrow 数据层、HttpClient 5 传输层、Jackson 序列化层与 Lance Namespace 客户端并在依赖升级后按本文命令及时刷新这份清单。赞分享向量数据库数据库人工智能后端【免费下载链接】lancedbDeveloper-friendly OSS embedded retrieval library for multimodal AI. Search More; Manage Less.项目地址https://gitcode.com/gh_mirrors/la/lancedb点击查看免费下载相关推荐Lance Java SDK 第三方依赖清单解析从许可证合规到依赖用途全景Lance Java SDK 第三方依赖清单解析从许可证合规到依赖用途全景 Lance 是一个面向多模态 AI 的开源 Lakehouse 数据格式其 Ja数据库向量数据库数据湖全文检索Memray 依赖许可证全解析内置第三方开源库清单与 Apache 2.0 合规实践Memray 依赖许可证全解析内置第三方开源库清单与 Apache 2.0 合规实践 本篇指南以 docs/licenses.rst https://link性能剖析开发工具Semaphore UI 第三方许可证合规清单解析从 THIRD-PARTY-LICENSES.md 看开源依赖审计与合规溯源实践Semaphore UI 第三方许可证合规清单解析从 THIRD PARTY LICENSES.md 看开源依赖审计与合规溯源实践 导读 THIRD PART后端DevOps任务调度认证鉴权创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门