常见的开源License
⽬录
什么是开源软件
开放源代码的软件。假设有⼀天⾃我感觉代码能⼒不错,写了个⼩⼯具,但我并不想通过它来赚钱,我更想把这个⼯具及代码分享出去,让别⼈免费使⽤或阅读我写的代码,对我⽽⾔,能获得别⼈的认可,提升影响⼒我就感到很开⼼,这就是开源,开源也是⼀种精神。
开放源代码意味着什么相对应的就是闭源,不开放源代码,⽐如⼤多数商业软件。关键技术不能跟你分享,不然哪⼀天你成为我竞争对⼿咋办,我还得靠这代码恰饭。
什么是 license
license 翻译为许可证。理解为协议或版权声明,违反协议的后果就是商业纠纷。⽤原创作品类⽐,我发布这篇⽂章时声明了原创,别⼈如果要转载这篇⽂章,要经过我允许,否则就侵犯了我的权益。当然⽂章的版权与软件版权还是不⼀样的,不做过多⽐较。
商业许可证与开源许可证
商业许可证理解为使⽤该软件的门票,⽐如要使⽤ IDEA,你需要付费购买 license。
原创⽂章,你可以免费看,但不可以抄袭或者⽤作商业⽤途。类似的,开源软件,你可以免费使⽤、修改代码、与别⼈分享,但有⼀定的约束,通过开源许可证进⾏约束,它就像⽂章原创声明,但⽐原创声明复杂得多。
开源许可证有很多种类型,包含的内容各不相同,也就是对使⽤者的约束不⼀样。⽐如开源代码如果使⽤ GPL 协议,那么你就不能将这个代码利⽤在⾃⼰的商业产品中。
对开发者的影响
如果公司开发⼀个产品,需要使⽤到开源项⽬,将开源项⽬作为 jar 包引⽤或者需要修改项⽬源代码,不同情况应该使⽤不同的项⽬,否则会引起商业纠纷。
开源许可证的类型
开源许可证种类繁多,⼤概有上百种,但常⽤的有 6 种,为了⽅便理解,以主要特点作简要说明。
不推荐⽤于商业产品的协议
GPL - GNU General Public License
GNU 通⽤公共许可协议,免费使⽤、引⽤、修改代码,但不能⽤在闭源软件中发布及销售。“传染性” 表⽰如果⼀个软件使⽤了 GPL 协议的开源代码,那么这个软件也必须开源,仍然免费使⽤。不能⽤于商业产品。
LGPL - GNU Lesser General Public License
对 GPL 作了⼀些补充,在商业产品中,可以引⽤ LGPL 协议的代码,如果对代码进⾏了修改,额外的代码也需要使⽤ LGPL 协议,可以⽤于商业产品。
MPL - Mozilla Public License
可以对源代码进⾏修改,但必须有⼀个额外的⽂件对修改进⾏描述,还有⼀些严格的限制,可以⽤于商业产品。
适⽤于商业产品的协议
BSD - Berkeley Software Distribution License
代码可以被引⽤及修改,进⾏⼆次开发,适⽤于商业产品中。
主要限制在于不能⽤开源代码的作者或机构进⾏商品推⼴。
MIT - Massachusetts Institute of Technology License
协议名源⾃⿇省理⼯学院,和 BSD 协议⽐较接近,但⽐ BSD 更宽松,⽆论⽤于开源还是商业产品,只要包含开源代码的许可协议声明,⾄于你会不会通过它进⾏商品推⼴,作者并不关⼼,只想保留版权。
Apache - Apache License 2.0
Apache Licence 是著名的 Apache 软件基⾦会发布的协议,相对于 MIT 协议,要求稍微严格,如果修改了源代码,需要进⾏说明。
如何选择开源许可证
如果你要发布⼀个开源项⽬,下⾯这张图能让你更清楚⾃⼰应该选择哪种 license。图⽚来⾃阮⼀峰⽼师博客,⽹上⽤得⽐较多。
参考来源

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。