首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不继承`<license>`的情况下发布开源Maven父POM

在不继承`<license>`的情况下发布开源Maven父POM
EN

Stack Overflow用户
提问于 2022-08-04 16:25:46
回答 1查看 187关注 0票数 7

我们希望发布一个Maven POM,它可以作为各种项目的父POM。一些使用POM的项目将是开源的,但有些则不会。为了将我们的父POM指定为开放源代码,我们包括以下内容:

代码语言:javascript
复制
<licenses>
  <license>
    <name>Apache-2.0</name>
    <url>https://www.apache.org/licenses/LICENSE-2.0</url>
    <distribution>repo</distribution>
  </license>
</licenses>

这从本质上说,“这个项目是开源的”。

不幸的是,由于POM遗传,任何使用此父POM的项目也会有效地表示“该项目也是开源的”,因为所有子代项目的有效POM也将包括此相同的许可部分。

开发人员可以尝试包括一些<licenses>部分来覆盖这个许可,但是父POM的全部意义是它应该给开发人员更少的工作,而不是更多的工作。此外,一些私人项目(甚至是我们的)可能根本不希望表明许可!

我们的公共父POM如何表明它是开源的,而不通过POM继承有效地使所有子项目开放源代码呢?例如,是否有防止继承<licenses>节的POM设置?

更新:我为这个功能提交了改进请求票证MNG-7562

EN

回答 1

Stack Overflow用户

发布于 2022-10-07 07:29:37

在我看来,你有三个选择:

  • 在您的POM中包含<licenses>,并且期望使用它的开发人员将覆盖它,如果projet不符合所提供的许可。
  • 从POM中删除<licenses>,并在README中包含许可证(在这种情况下,如果需要的话,使用POM的开发人员也必须指定许可证)。

编辑:删除只为url工作的子继承属性的部分(见下面的注释)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73239332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档