常见的开源许可证类型
在使用代码托管平台时,比如 GitHub、GitLab 或 Gitee,创建项目时经常会遇到一个叫“许可证”的选项。这个选项不是摆设,它决定了别人能不能用你的代码,怎么用,甚至能不能商用。
MIT 许可证是最宽松的一种。只要保留原始版权声明,任何人都可以随意使用、修改、分发,哪怕是做成商业软件也完全没问题。很多前端小工具、脚本库都选 MIT,就像你在菜市场卖配方,告诉别人‘随便做,记得提我一句就行’。
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction...GPL 系列:强调自由延续
GNU 通用公共许可证(GPL)更讲究“传染性”。如果你用了 GPL 的代码,那么你自己的项目也必须开源,并且采用同样的许可证。这就像借了朋友一本自制菜谱,规定你要是开店卖这些菜,也得把你的改良版菜谱公开。
GPLv3 是目前较新的版本,增加了对专利和硬件限制的保护条款。适合那些希望推动代码彻底开放的开发者。
Apache 许可证:企业友好型选择
Apache 2.0 比 GPL 更适合企业环境。它允许用户自由使用、修改、分发,还明确授予专利使用权。这意味着公司用你的代码时不用担心被暗中起诉专利侵权。许多大型开源项目如 Kubernetes 和 Android 都采用 Apache 许可证。
它还要求保留 NOTICE 文件中的说明文字,相当于在产品说明书里写上‘部分技术来自某某’。
BSD 与 MIT 类似但略有不同
BSD 许可证有两个常见版本:2-Clause 和 3-Clause。两者都允许自由使用,但 3-Clause 多了一条“不得用作者名字做推广”的限制。也就是说,你用了我的代码,不能打着我的名号宣传你的产品。
这种许可证常见于学术或研究机构发布的项目,保护原作者不被滥用名义。
如何为项目选择合适的许可证
如果你写了个小工具想让大家随便用,MIT 是最省心的选择。想确保生态开源闭环,GPL 更合适。如果是团队开发、可能涉及专利的技术模块,Apache 2.0 提供更多法律保障。
代码托管平台通常会在创建仓库时提供许可证模板选择。点一下“Add a license”,就能从下拉列表里选 MIT、Apache-2.0、GPL-3.0 等常见选项,系统自动生成 LICENSE 文件。
没有加许可证,默认就是“版权所有,禁止转载”。哪怕你把代码传到公开仓库,别人也不能合法使用——这就像把书放在图书馆橱窗里展览,不代表能借走抄录。