License 规范
为了确保软件包在合法、合规的前提下被开发者和用户使用,建议为每个软件包配置适当的许可协议(License),以明确其使用、分发和修改权限。本文档介绍 License 配置的相关规范和要求。
许可证类型
Armory 支持以下几种许可证类型,以满足不同场景下的软件包授权需求。
标准化许可证
Armory 支持 SPDX(Software Package Data Exchange)许可证标识符,开发者可直接使用已定义的开源许可证。为确保一致性和兼容性,建议许可证命名遵循 SPDX license expression 规范。
您可以参考完整的 SPDX 许可证 ID 列表 配置 armory.json 的 license
字段。为确保更广泛的开源兼容性,建议优先选择 OSI 认证 的许可证。
armory.json 配置示例如下:
单个许可证
此处以使用 MIT 许可证为例进行介绍:
{ "license": "MIT", }
多重许可证
如果软件包采用多个许可证,可使用 SPDX 许可证表达式,例如:{ "license": "(ISC OR GPL-3.0)", }
配置并成功发布软件包后,可在软件包详情页右侧的 License 字段中查看软件包的许可证标准。
自定义许可证
如果软件包采用非标准许可证或自定义授权协议,可通过以下方式配置 License 信息:
方式一:添加 LICENSE 文件(推荐)
在软件包根目录下创建一个名为
LICENSE
的纯文本文件(无文件扩展名),用于详细说明授权条款。系统将自动识别该文件内容,并在软件包详情页右侧的 License 字段中提供预览功能。方式二:通过
armory.json
引用授权信息如未使用标准
LICENSE
文件,也可将授权内容写入任意文件(如LICENSE.txt
、docs/license.md
或README.md
),或在文件中添加外部 License 链接。然后在armory.json
中通过如下格式声明:{ "license": "SEE LICENSE IN <filename>", }
无许可证
如果软件包不授予任何使用权限,可在 armory.json 中将 license
配置为"UNLICENSED"
,表示该软件包不允许任何使用、修改或分发,除非作者另行授权。
{
"license": "UNLICENSED",
}

注意事项
"UNLICENSED" 与 "Unlicense" 有不同的含义,使用时请务必区分:
- "UNLICENSED":表示软件包是私有的,或未授权他人使用。使用 "UNLICENSED" 的软件包可能会在未经作者许可的情况下带来法律风险,尤其在商业项目中。
- "Unlicense":是一个 SPDX ID,表示该软件包允许任何人自由使用、修改和分发。