开源协议怎么选?MIT、BSD、Apache 2.0、GPL、AGPL、LGPL、MPL 完全指南

有些朋友可能会认为——开源不就免费随便用吗。 nonono,这个认知是大错特错的。 搞不清楚开源协议,可能会吃官司哦。 本篇文章会按照从尺度宽松到严格的顺序,带大家盘点不同的开源协议。 并且会结合实战案例,教大家如何一键添加开源协议。 先来介绍,开源协议中的佛系三剑客 —— MIT、BSD、Apache。 为啥叫它们佛系三剑客呢?因为,它们的要求很宽松,IT界统称它们为“宽松型开源协议”。 这三剑客的共同点 —— 可以自由地商业化、修改代码、甚至把修改的版本闭源。 总而言之,看到这些协议的开源项目,你用就完事了,不要有任何负担。 那它们有什么不同点呢? 1、MIT MIT 协议有一个要求 —— 在你分发软件的时候,要把版权声明带上。 第一个问题——什么是软件分发呢? 软件分发是把你的软件,打包给别人使用。 你自己做个网站,别人来访问,这不叫分发。但是,你把网站代码打包发给别人,这就叫分发了。 所以,这个时候就需要声明一下 —— 你项目中,用了哪些开源项目。 第二个问题——怎么声明? 如果你是在代码中,直接引用了别人的代码,那么,你需要添加这样的声明。 --- 引用部分开始 --- Copyright (c) 2022 原作者名字 Licensed under the MIT License (MIT) --- 引用部分结束 --- 这里开始写你自己的代码... 如果采用调用三方库的形式,那么你需要在项目中添加THIRD-PARTY-NOTICES.txt这样的声明。 这些文件看似复杂,其实都可以一键生成。 后面的实战案例中,我会跟大家分享。 前端大名鼎鼎的vue框架、jquery框架,使用的就是MIT协议。 2、BSD BSD 协议,增加了一条 —— 不能用原作者的名义或商标来给你的衍生产品做商业推广。 比方说,你的团队开源了一个项目,它遵从 bsd 开源协议。 我的产品用了你的项目。 我在做产品宣传的时候,不能大张旗鼓地说:我的产品用了某某大佬团队的技术,保证这个产品又丝滑又稳定又安全。 3、Apache License 2.0 apache协议在专利层面上,对开源的项目进行约束,以防止一些专利流氓破坏开源环境。 举个例子:A公司申请了某个专利技术,叫小a专利。 某个开源项目 xx 的负责人C,使用了这个小a专利。 A公司见有利可图,便起诉了负责人C要求赔偿。起诉的同时,A公司就不能继续使用 xx 项目了。 ...

2026年5月4日 · 高勉