架构师必备:使用开源协议的注意事项与实践指南
大家好,今天小米要和大家分享的是关于项目上源码开源协议的问题。最近在我们的一个项目中,客户要求对我们的源码版权进行扫描,让我感到有些困惑。作为一个项目开发者,这是我第一次遇到开发的代码需要考虑引用三方类库是否支持商业使用的问题。
常见的版权协议
在我们的电商源码中,我们使用了以下协议:
Apache License :Apache License是对商业应用非常友好的许可协议。使用者可以根据需要修改代码,并将其作为开源或商业产品发布和销售。
(资料图片)
BSD开源协议(Berkerley Software Distribution):商业软件可以使用,并可以修改使用BSD协议的代码。
LGPL (GNU Library or “Lesser” General Public License):商业软件可以使用,但不能修改LGPL协议的代码。
MIT (MIT license):商业软件可以使用,并可以修改MIT协议的代码,甚至可以出售MIT协议的代码。
MPL (Mozilla Public License ):商业软件可以使用,并可以修改MPL协议的代码,但修改后的代码版权归软件的发起者所有。
CDDL (Common Development and Distribution License):商业软件可以使用,并可以修改CDDL协议的代码。
EPL (Eclipse Public License ):商业软件可以使用,并可以修改EPL协议的代码,但使用者需要承担代码产生的侵权责任。
CC0(Public Domain):“CC0”的全称为“Creative Commons Zero”,是一种开放授权协议,旨在允许原作者放弃对其作品的所有版权和邻接权利,使之成为公有领域的一部分。可以自由地使用、共享和修改该作品,甚至可以用于商业用途,无需经过原作者的许可或支付费用。
GPL (GNU General Public License):GNU GPL是最广泛应用的开源协议之一,由自由软件基金会(FSF)制定。该协议规定了软件的使用、复制、修改、分发等方面的规则,要求将使用、修改后的软件同样以GPL协议开源,并保留原作者的版权信息。因此,使用GNU GPL协议的软件必须也是开源的,并且不能将其用于商业用途。GPL家族下的其他协议,如AGPL等同样不能商用。
除此之外,还有一些类库遵守MIT协议、Bouncy Castle等。
综上所述,MIT License、Apache License和BSD License都是可以用于商业用途的开源协议,而GNU、GPL和其他未知协议则不允许将其用于商业用途。
经过使用"license-maven-plugin"进行扫描,我们发现至少有13个服务含有不可商用协议,大致内容如下所示。
对于这些问题,我们采取了以下措施来进行处理。
Maven Dependency Helper
首先,根据扫描结果中的版权扫描链接,我们针对不可商用协议进行了修改。然后,在IDEA中的插件中找到一个叫做"Maven Dependency Helper"的工具,将其安装到本地,并点击需要修改的微服务的pom文件。在pom文件的左下角,我们可以看到一个名为"Dependency Analyzer"的按钮。
点击该按钮后,会展示所有的三方类库依赖,以树状图的形式呈现。这样我们可以更好地找到非商用的类库。
接下来,我们选择"All Dependencies as Tree",这样所有的依赖关系会以树状图的形式展示,方便我们找到有问题的类库。我们在输入框中输入有问题的类库名称,并点击右侧的"Filter"按钮,这样就可以找到有问题的类库。
未知协议的处理建议
针对未知协议的类库,我们进行如下处理:
对于没有扫描出具体协议的类库,我们首先查阅类库包里的pom文件或者LICENSE文件,看是否有明确的开源协议。
如果无法通过pom文件获得信息,我们会在GitHub上查看是否有标记开源协议的信息。
明确非商用协议的处理建议
针对已经明确是非商用协议的类库,我们进行如下处理:
如果类库使用了非商用协议,我们首先确定该类库是否被项目所使用。如果没有被使用,我们可以将其排除。
如果该类库被项目所依赖,我们需要与项目经理、产品经理进行沟通,确认该业务是否为过时业务,如果是,我们可以将其删除。
如果是正在使用的业务,我们需要使用已知开源的三方类库对原来的业务代码进行相应的重写。
通过以上处理,我们能够确保项目中的源码符合开源协议的要求,保护了版权和商业使用的合规性。同时,我们也要时刻关注开源协议的更新和变化,以确保我们的项目源码始终与开源协议保持一致。
END
希望以上内容能够对大家理解项目上源码开源协议的问题有所帮助。如果对开源协议还有疑问或者有其他相关问题,欢迎在评论区留言,小米会尽力为大家解答。感谢大家的阅读与支持!
如有疑问或者更多的技术分享,欢迎关注我的微信公众号“知其然亦知其所以然”!
-
架构师必备:使用开源协议的注意事项与实践指南
哔哩哔哩 2023-07-11
-
北爱和平协议(北爱剧情介绍)
科技网 2023-07-11
-
奇瑞探索06燃油版预计8月中下旬上市
车主头条 2023-07-11
-
Shams:快船&绿军调查过利拉德的加盟意愿 但他现在只想去热火
直播吧 2023-07-11
-
南阳卧龙区应急管理局:开展涉氨制冷企业安全生产专项检查
大河网 2023-07-11
-
夫妻共同债务清偿顺序是怎样的
法务网 2023-07-11
-
港股IMAX CHINA暂停交易
同花顺财经 2023-07-11
-
AI难成消费电子的灯塔
引领外汇网 2023-07-11
-
杭州公安破获一起以亚运名义伪造印章招募保安案件
新华网 2023-07-11
-
锐捷网络07月10日获深股通增持37.41万股
东方财富Choice数据 2023-07-11
-
架构师必备:使用开源协议的注意事项与实践指南
哔哩哔哩 2023-07-11
-
北爱和平协议(北爱剧情介绍)
科技网 2023-07-11
-
奇瑞探索06燃油版预计8月中下旬上市
车主头条 2023-07-11
-
Shams:快船&绿军调查过利拉德的加盟意愿 但他现在只想去热火
直播吧 2023-07-11
-
南阳卧龙区应急管理局:开展涉氨制冷企业安全生产专项检查
大河网 2023-07-11
-
夫妻共同债务清偿顺序是怎样的
法务网 2023-07-11
-
港股IMAX CHINA暂停交易
同花顺财经 2023-07-11
-
AI难成消费电子的灯塔
引领外汇网 2023-07-11
-
杭州公安破获一起以亚运名义伪造印章招募保安案件
新华网 2023-07-11
-
锐捷网络07月10日获深股通增持37.41万股
东方财富Choice数据 2023-07-11
-
镇江船厂顺利交付2艘消拖两用全回转拖船
国际船舶网 2023-07-11
-
强如大众,也得向现实低头
车卖场 2023-07-11
-
温网第8比赛日综述:德约豪夺32连胜,张帅赢下女双金花德比
全景体育 2023-07-11
-
中国代表在人权理事会阐述中方在巴勒斯坦问题上主张
中国日报 2023-07-11
-
花旗参玉米胡萝卜鸡汤的做法?
南方养生网 2023-07-11
-
神舟十五号几点对接天和核心舱(神舟15号乘组选定
2023-07-11
-
上期所6月查处异常交易行为15起
期货日报网 2023-07-10
-
民政部:2022年度彩票公益金16亿投入老年人福利类项目
央视新闻客户端 2023-07-10
-
工业和信息化部公示多项行业标准
上海证券报·中国证券网 2023-07-10
-
产品评测|平安财险「小神童3号」升级来袭!和「小顽童3号」相比有什么不同?
和讯网 2023-07-10
-
585个岗位,收到简历374份!金汇这场夏季招聘会,你参加了吗?
上海奉贤 2023-07-10
-
《英雄联盟》LPL 夏季赛季后赛落地西安,赛程公布
中关村在线 2023-07-10
-
原神Korepi多功能3.8辅助国际服版
哔哩哔哩 2023-07-10
-
《奔跑吧》停播,蔡徐坤索赔千万
德云那点儿事 2023-07-10
-
卡尔-马龙有个贤内助,他和3名非婚生子女曾多年恩怨纠葛
绿茵旋风 2023-07-10
-
红米手机整点报时怎么取消
互联网 2023-07-10
-
精工钢构: 公司生产经营正常开展且订单情况再创历史新高
证券之星 2023-07-10
-
吉林白城村民私搭浮桥被判刑引争议,修桥人与官方说法出入较大;振林村便民桥或秋收前建成
羊城晚报 2023-07-10
-
憧憬的拼音读音 憧憬的读音
城市网 2023-07-10
-
拜仁为凯恩找好了房子,热刺索要1亿欧!拜仁希望凯恩自掏腰包
海浪星体育 2023-07-10