比如我们建了一个nodejs项目,里面的package.json会有license属性。那么license是什么?

定义

license,即许可证
许可证在我们在发布自己的软件的时候跟软件代码一起发布。
它用来规定使用该软件的开发人员或组织对该软件的使用权限。拥有清晰的许可证有助于明确定义该软件可以使用的范围。
比如,如果想完全开源,用Apache2.0就行,googlecode就是用的这个,很多的框架和开源软件也是这个。如果不想开源也可以自己写,列明软件使用者的注意事项,随软件一起发布。

常见的许可证

在这里插入图片描述
可以看到,一共有九种非常常用的许可证。
下面以Apache许可证为例,进行介绍。

Apache许可证

Apache Licence是著名的非盈利开源组织Apache采用的协议。
该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。

同时规定了以下条件

  • 需要给新代码的用户Apache License
  • 如果你修改了代码,需要在被修改的文件中说明
  • 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  • 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐