Apache Whisker 介绍与选型指南
Apache Whisker 介绍与选型指南:Creadur 套件中基于许可元数据生成 NOTICE/LICENSE 的审计辅助工具,模块构成与双工作模式解析,发布停滞状态实查标注,及与 Apache Rat、SkyWalking Eyes、ScanCode 的选型对比。
Apache Whisker 介绍与选型指南
一、信息基准
本章列明本文事实性信息的核查时间与来源,全部信息取自 Apache 官方渠道,不含本地实测推算。特别说明:Apache Whisker 隶属于 Apache Creadur 顶级项目,官方长期未发布正式版本,故本文标题不带版本号,改为在正文中给出组件级版本基准。
1.1 组件与版本基准
| 组件/事实 | 基准 | 来源 |
|---|---|---|
| 项目归属 | Apache Creadur 顶级项目的子组件(官网导航:Apache / Creadur / Whisker) | https://creadur.apache.org/whisker/ |
| 唯一正式版本标签 | apache-whisker-0.1,GitHub 记录时间 2013-08-04 | https://github.com/apache/creadur-whisker/releases.atom |
| 官方站点构建版本 | 0.2-SNAPSHOT(Last Published: 2026-07-22),即 0.2 仅为未发布的开发快照 | https://creadur.apache.org/whisker/ 页面标注 |
| 官方发行目录现状 | downloads.apache.org/creadur/ 下当前仅存在 apache-rat-0.18/ 与 apache-tentacles-0.1/,无 whisker 发行目录 | https://downloads.apache.org/creadur/ |
| 历史归档现状 | archive.apache.org/dist/creadur/ 归档列表中同样无 whisker 目录 | https://archive.apache.org/dist/creadur/ |
| Maven Central 现状 | org.apache.creadur/ 组下仅存 tentacles 构件;whisker 文档声明的 groupId org.apache.creadur.whisker 在 Central 无制品目录 | https://repo1.maven.org/maven2/org/apache/creadur/ |
| 查询日期 | 2026-10-18 | 本文统一标注 |
1.2 官方来源清单
| 来源 | 地址 | 用途 |
|---|---|---|
| Whisker 官方站点 | https://creadur.apache.org/whisker/ | 功能定位、模块构成、版本标注 |
| Creadur 项目主页 | https://creadur.apache.org/ | Creadur 套件(Rat/Tentacles/Whisker)背景 |
| GitHub 仓库 | https://github.com/apache/creadur-whisker | 代码、唯一 tag 记录、stars 数 |
| GitHub 订阅源 | https://github.com/apache/creadur-whisker/releases.atom | 版本时间线 |
| Apache 发行目录 | https://downloads.apache.org/creadur/ | 发行物存在性核查 |
| Apache 归档目录 | https://archive.apache.org/dist/creadur/ | 历史发行物核查 |
二、软件概述
本文介绍的是 Apache Whisker(Creadur/Whisker,无已发布版本,站点构建版本 0.2-SNAPSHOT)。官方定义:Apache Whisker assists assembled applications maintain correct legal documentation——即帮助组装型应用(由大量第三方库/框架拼装而成的软件发行物)维护正确的法律文档。
Whisker 是 Apache Creadur 语言与构建无关的软件审计工具套件(与 Apache Rat、Apache Tentacles 并列)的三个成员之一。官网同时强调其边界:Whisker 只是更高效地维护信息,不能替代严谨的法律工作,文档不构成法律意见,使用者应具备相关法律常识。
状态结论(依据第一章基准核查,如实标注):Whisker 处于低活跃/事实性停滞状态——自 2013-08 的 0.1 标签后从未发布过正式版本,官方站点长期停留在 0.2-SNAPSHOT,且当前与历史官方发行渠道均无 Whisker 发行物,Maven Central 亦无其制品。选择它作为新项目的许可证审计工具需要非常谨慎,本文第六、七章给出替代建议。
三、核心架构
3.1 元数据驱动模型
依据官方站点"How Does Whisker Work?"一节的描述:Whisker 以"licensing meta-data"(许可元数据)为核心——元数据描述组装进发行物的各组件的法律属性(许可家族、版权声明等),Whisker 基于这份数据工作。官方站点提供样例元数据(如 Apache James Public Domain 模板、MIT 许可家族等示例)供学习。
3.2 两大工作模式
官方站点"How Can Whisker Help?"给出两种能力:
| 模式 | 说明 |
|---|---|
| verify(校验) | 对照发行物校验元数据的质量与一致性 |
| generate(生成) | 从元数据生成法律文档,官方点名支持 NOTICE 与 LICENSE 两类文件 |
3.3 模块构成
官方站点 Modules 栏目列出的模块划分:
| 模块 | 角色 |
|---|---|
| Whisker::Model | 许可元数据模型 |
| Whisker::Scan | 对发行物进行扫描 |
| Whisker::XML | 元数据的 XML 读写 |
| Whisker::App | 应用装配层 |
| Whisker::Output(velocity) | 基于 Apache Velocity 的文档输出 |
| Whisker::Command Line Interface | 命令行入口 |
| Whisker::Maven Plugin | Maven 构建插件入口 |
四、功能特性
依据官方站点归纳:
- 双能力:verify 元数据质量 + 从元数据生成 NOTICE/LICENSE 等法律文档,官方标注特别适合组件构成复杂的组装型应用。
- 两种使用形态:命令行工具(CLI)与 Apache Maven 插件(官方站点设独立使用文档与 FAQ、"Whisker In 5 Minutes"快速示例页)。
- 语言与构建无关:Creadur 套件的定位是对被审计软件的语言、构建系统无要求(对比 Rat 的定位口径)。
- 内置许可模板体系:官方文档附带许可家族/版权声明样例(Apache James Public Domain 模板、MIT 许可等),便于快速理解元数据写法。
- 输出层基于 Apache Velocity 模板实现,可定制生成文档的版式。
五、快速上手
以下要点引自官方站点(creadur.apache.org/whisker/ 及其"In 5 Minutes"示例文档与 apache-whisker-maven-plugin 使用文档),本文不做本地实测。
5.1 使用形态
官方提供两种使用入口:
- 命令行方式:通过 Whisker::Command Line Interface 模块执行 verify/generate 命令,处理一份许可元数据与目标发行物(官方站点 CLI 文档)。
- Maven 插件方式:官方 Maven 插件文档声明的 groupId 为 org.apache.creadur.whisker(见官方 usage 页),可在构建过程中嵌入法律文档生成。
5.2 元数据示例思路
官方"In 5 Minutes"示例的写法思路:定义许可家族(license family)→ 声明版权归属 → 将组件逐条挂接到对应许可与声明,最终由 Whisker 校验或生成 NOTICE/LICENSE 文档。完整的示例元数据可在官方站点样例页(Apache James Public Domain Template、MIT License 等条目)直接查阅。
5.3 可用性重要提示
按第一章基准核查结论:截至查询日期,官方并未提供可下载的 Whisker 发行包(下载页指引的发行目录与归档目录均无 whisker 条目),Maven Central 也无法取到 org.apache.creadur.whisker 制品。因此在当前时间点无法按官方文档完成真实的安装运行;如需源码研究,只能从 GitHub 仓库 apache/creadur-whisker 获取源码自行构建,构建结果同样无官方版本背书。
六、适用场景与限制
6.1 适用场景
- 需要对由多组件组装的发行物系统化管理 NOTICE/LICENSE 等法律文档,且团队有能力自行维护元数据文件的场景。
- 需要按"许可家族 + 版权声明"结构化组织许可证元数据,并对文档生成做模板化定制的场景(输出层基于 Velocity 模板)。
- 对 Creadur 体系(Rat/Tentacles/Whisker)做历史研究与元数据格式复用。
6.2 已知限制(状态如实标注)
- 长期未发布:唯一版本 0.1 停留于 2013-08,0.2 仅为 SNAPSHOT;官方发行渠道与 Maven Central 均无可用制品,官方未公布任何后续发布计划。
- 官方明示不构成法律意见,使用前需自行确认法律效力。
- 元数据需要人工编写与维护,与自动扫描类工具(如 Rat、ScanCode)相比人工成本高。
- 对新项目不建议采用:缺少版本化发行物意味着无法获得安全更新与兼容性承诺,同任务应优先选择第七章的活跃替代品。
七、同类选型对比
7.1 对比对象与数据基准
选取三个同类许可证/合规审计工具:Apache Rat(Creadur 套件内同门兄弟)、Apache SkyWalking Eyes(许可头检查与依赖许可解析)、ScanCode Toolkit(多维度代码扫描)。数据于 2026-10-18 取自各项目官方渠道(GitHub 仓库页、releases.atom、downloads.apache.org、PyPI 官方元数据)。
7.2 量化对比
| 维度 | Apache Whisker(无发布版) | Apache Rat 0.18 | Apache SkyWalking Eyes 0.9.0 | ScanCode Toolkit 32.5.0 |
|---|---|---|---|---|
| 开源许可 | Apache-2.0(ASF 项目统一策略) | Apache-2.0 | Apache-2.0 | Apache-2.0 并含 CC-BY-4.0 等数据许可(PyPI 元数据) |
| GitHub stars + 最近发版 | 9 stars;唯一标签 0.1(2013-08-04) | 41 stars;0.18(发行目录时间戳 2026-03-20,Maven Central 同为 0.18) | 317 stars;v0.9.0(2026-09-01) | 2648 stars;32.5.0(PyPI 官方源当前版本) |
| 版本节奏 | 无节奏:十余年未发版 | Creadur 主线持续维护,0.16→0.17→0.18 滚动 | 年度级迭代(0.7.0→0.8.0→0.9.0) | 持续高频维护,子模块版本众多 |
| 兼容矩阵 | 站点构建 0.2-SNAPSHOT,无发行物,无法正常获取 | Java 运行,提供 CLI 与 Maven 插件 | Go 单二进制,CLI 与 CI 集成,支持多种包管理器许可解析 | Python 工具链,CLI 扫描,产出门控数据库 |
补充说明:Rat 与 Whisker 同属 Creadur,但 Rat 持续发版且聚焦"许可证头/版权声明审计",活跃度远高于 Whisker;SkyWalking Eyes 面向工程流水线(许可头修复 + 依赖许可报表);ScanCode 定位 deepest 扫描(许可证、版权、依赖清单识别),数据许可与主许可并存需注意合规组合。
7.3 选型建议
无论何种许可证审计需求都不建议再新引入 Whisker(无发布版、无制品、无维护节奏);构建期许可证头审计选 Apache Rat 或 SkyWalking Eyes,需要深度组件清单与许可识别时选 ScanCode Toolkit。
八、参考链接
- Whisker 官方站点:https://creadur.apache.org/whisker/
- Creadur 项目主页:https://creadur.apache.org/
- GitHub 仓库:https://github.com/apache/creadur-whisker
- Apache 发行目录(Creadur):https://downloads.apache.org/creadur/
- Apache 历史归档(Creadur):https://archive.apache.org/dist/creadur/
- Maven Central 构件目录(org.apache.creadur):https://repo1.maven.org/maven2/org/apache/creadur/