gpt4 book ai didi

Maven 许可

转载 作者:行者123 更新时间:2023-12-02 10:33:42 30 4
gpt4 key购买 nike

我对将许可证信息放入 Maven 项目的各种方法有点困惑。

如果我将许可证放在 POM 文件内的标签中,这是否意味着我的整个项目都拥有该许可证?

如果我将 license.txt 文件放入项目中,这是否意味着该项目属于该许可证?

如果我将许可证放在我拥有的每个 .java 文件的开头会怎样?这是否意味着我编写的每个类都可以有不同的许可证?

当我的 POM 文件头中有许可证信息时,情况会怎样?这是否也意味着所有文件都受该许可证约束?

很困惑...

最佳答案

别担心,你不是唯一一个感到困惑的人。这个问题并不局限于Java。 Maven 至少提供了一种将项目分解为单独模块的机制,每个模块都有一个描述模块许可证的元数据文件 (POM)。

问题是作为一个软件用户,希望遵守许可证,我如何确定所有文件(在软件包中)都属于同一个软件许可证。一些开源许可证之间存在细微的差异和使用影响。

惠普开源了他们的许可扫描系统。

http://www.fossology.org/

这使组织能够扫描第 3 方库的源代码并发现许可证。此分析遵循随着时间的推移而出现的标准技术(自述文件中的许可证、注释标题中的许可证等)。对于喜欢外包这项工作的组织,有商业公司维护开源软件的数据库:

隧道尽头有一些曙光。 Linux 基金会已发起一项计划来解决此问题:

http://spdx.org/

这是个好主意。创建一个单一标准,允许软件开发人员明确声明每个文件的许可证。该小组的一项真正成功是收集了一份通用的许可证名称列表。在我看来,唯一的缺点是缺乏开发人员采用和工具支持。

总之,我建议将所有文件保留为同一许可证的 Maven 模块一部分。假设您的模块是开源的,请在注释 header 中指出该许可证并在 Maven POM 中发布该许可证。如果您的代码是闭源的,在我看来,将许可证放入 META-INF 目录会有所帮助,但并不能完全解决合规性问题。

关于Maven 许可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227812/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com