指南 · 08

许可证应用实务指南

整理为仓库应用许可证的实际步骤:LICENSE 文件、版权年份和版权所有者的写法、Apache NOTICE、GNU COPYING 惯例、文件头、第三方声明、DCO 与 CLA,以及更换许可证时的注意事项。

最后核对:2026-09-23

1. 把 LICENSE 文件放在仓库根目录

首先要做的是把许可证原文作为 LICENSE(或 LICENSE.txtLICENSE.md)文件放在仓库根目录。GitHub、GitLab 和包管理器会查找此文件来识别许可证。在生成器中选择许可证并填写年份和版权所有者,即可直接获取。

2. 年份和版权所有者的写法

3. 各许可证的附属文件

许可证惯例
Apache-2.0LICENSE + 如有需要的 NOTICE(只简短写归属声明)
GPL-3.0 / GPL-2.0原文放在 COPYINGLICENSE
LGPL-3.0COPYING(GPL-3.0 原文)+ COPYING.LESSER(LGPL-3.0 原文)
MIT OR Apache-2.0LICENSE-MIT + LICENSE-APACHE
BSL-1.0LICENSE_1_0.txt

Apache-2.0 的 NOTICE 并非必需,但再分发带有 NOTICE 的代码的人必须保留其内容。ASF 建议 NOTICE 中只放法律上必需的归属声明,不要放致谢或许可证全文。

4. 源文件头

在每个文件中放一个简短的文件头,即使文件被单独复制,许可证信息也会随之一起。

# SPDX-FileCopyrightText: 2026 Example Inc.
# SPDX-License-Identifier: Apache-2.0

GNU、Apache、MPL 也推荐使用官方声明,但越来越多的项目只用 SPDX 两行来代替。详情请参阅 SPDX 指南

5. 包元数据与 README

6. 第三方代码声明

如果分发时包含了他人的代码,也必须一并遵守其许可证义务。

7. 接受贡献时:DCO 或 CLA

接受外部贡献后,版权会分散在多人手中。管理这一问题有两种方式。

贡献规则写在 CONTRIBUTING.md 中。

8. 更换许可证时

检查清单

  1. LICENSE 原文(只填写占位符)
  2. 附属文件(NOTICE、COPYING.LESSER 等)
  3. 文件头(SPDX 两行)
  4. 包元数据与 README
  5. 第三方声明
  6. 贡献规则(DCO 或 CLA)
本文为一般信息,不构成法律意见。重要决定请咨询专业人士。

参考来源