我想向
pom.xml
添加许可证,声明该项目已获得专有许可,“保留所有权利。”。 Pom 参考 指出
建议使用 SPDX 标识符作为许可证名称。
但是,SPDX 许可证列表中没有“专有”标识符。
虽然 composer.json 似乎使用 “专有”作为许可证标识符,并且 package.json 允许 :
"license" : "SEE LICENSE IN <filename>"
,但我没有找到任何关于 pom.xml
的建议。有吗
SPDX 在许可证列表中没有“专有”标识符,因为没有此类许可证。
类似“保留所有权利。”不是许可证。它是受版权保护的作品的默认设置。
composer.json
中使用"proprietary"
的约定是相反的效果:在Composer项目中,SPDX许可证标识符相对较早地引入,并且license
字段必须使用短标识符来构建许可证字符串(您可以在该领域拥有多个许可证)。
由于 license
中的
composer.json
字段是由此定义的,因此无法命名不在 SPDX 许可证列表中的任何其他许可证。由于这些通常是“封闭软件”许可证,因此建议使用通用术语“专有”(全部小写,不会与使用大写字母的 SPDX 短标识符混淆)。
pom.xml
的情况有所不同。它不需要需要特定标识符,它只是为name
字段推荐它们:
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
它提供自己的系统来命名/定义许可证。使用(长)SPDX 标识符作为名称只是一个(明智的)建议,但当然前提是您使用该列表中的许可证。
但是,如果您拥有自己的许可证,则可以将其名称和许可证文本的统一资源位置放在那里。如果您有个人许可证,那么没有问题(比较:在 Composer 中,如果您没有 SPDX,从技术上讲,您无法使用许可证字段)
现在:
根据您的问题,您既没有姓名也没有许可证文本。
但是您已经面临着如何合并和连接不存在的内容的技术问题。由于您想拥有许可证(您想在
pom.xml
中添加许可证条目),我想说为什么不代表您向律师寻求帮助,该律师能够找到您专有愿望的文本表达。告诉她你的愿望、想要和需要,就像你想填写这两个 <name>
和 <url>
字段,直到那时你只需记录整个过程:
<licenses>
<license>
<name/>
<url/>
<distribution/>
<comments>Intentionally left blank.</comments>
</license>
</licenses>
这当然只是一个非常早期和非常基本的基线,您甚至可以在考虑拿起手机之前对其进行调整。
SPDX 规范为此用例提供了
LicenseRef
,因此您可以在 LicenseRef-acme-corp-proprietary-license
字段中输入诸如 <name>
之类的值,然后在 <url>
字段中添加指向专有许可证全文的链接(允许人类律师进行适当的尽职调查)。任何符合 SPDX 的处理器/表达式解析器都应该可以很好地处理它。
从 SPDX v3.0(撰写本文时尚未发布)开始,还将为许可证例外提供名为
AdditionRef
的类似机制,这将使 Apache-2.0 WITH AdditionRef-acme-corp-specific-modifications
等表达式成为可能。