在sbt中包含许可证和版权声明文件

在sbt中包含许可证和版权声明文件,sbt,sbt-native-packager,Sbt,Sbt Native Packager,假设我有一个使用第三方库的项目,例如根据MIT许可证发布的项目 当使用生成可分发的tarball、zip、deb等时,我将重新分发所有依赖项的副本。重新分发时,我的依赖项的许可条件要求我包含该许可证/版权通知/许可条件的副本(在通常称为二进制形式的重新分发的许可证中)。顺便说一句,sbt native packager还包括Scala标准库的副本,根据其3条款BSD风格许可,该标准库也不包括适当的许可条件/版权声明 默认情况下,sbt native packager不包括此类许可证副本/版权声明

假设我有一个使用第三方库的项目,例如根据MIT许可证发布的项目

当使用生成可分发的tarball、zip、deb等时,我将重新分发所有依赖项的副本。重新分发时,我的依赖项的许可条件要求我包含该许可证/版权通知/许可条件的副本(在通常称为二进制形式的重新分发的许可证中)。顺便说一句,sbt native packager还包括Scala标准库的副本,根据其3条款BSD风格许可,该标准库也不包括适当的许可条件/版权声明

默认情况下,sbt native packager不包括此类许可证副本/版权声明/。。。在生成的分发中

我要寻找的是一种方便的方法,可以自动包含所有依赖项(包括可传递依赖项)的所有许可证/版权声明。

。。。或者,我想,如果我发布sbt native packager生成的原始tarball,就像在GitHub发布页面上一样,我会触犯法律,不是吗


编辑 我想,sbt native packager很难有一个通用的方法将所有许可证/版权通知注入到由其创建的发行版中,因为jar归档或ivy、maven、sbt等都不具备向归档添加许可证和版权通知的一流支持

目前为止我所看到的唯一建议是Apache软件基金会。他们建议(同时包含裸许可文件)和(包含所有版权声明)。我认为这个建议很好


我想,支持处理所有这些法律事务应该是更好的开始。像sbt这样的构建工具应该更好、更直观地支持这一点,例如,检查所有生成的jar归档文件,如果它们不同时包含许可证和通知文件,则任务(如包)中会出现错误。

回答您的问题:在sbt native packager中,很难以通用方式处理许可证。例如,将它们放在单独的目录中或列出它们

话虽如此,我认为这并没有必要,原因有二。我不是倡导者,所以这只是我的理解

  • 如果您有git tarball,则不包含任何依赖项。只有声明它们的生成文件。所以您没有分发任何代码。所以这应该没问题

  • 当您构建一个可执行的二进制文件时,您将不仅包括代码,还包括整个jar,它通常包括所有许可证和版权提示。从技术上讲,你已经包括了一切

  • 我还没有看到关于这个主题的任何问题,也没有看到其他构建工具(如maven/gradle)处理这个问题的方式。解决方案是什么样的?如果这是个问题

    更新 我发现这应该会产生你需要的信息。如果这就是您想要的,我很乐意将更新sbt native packager文档的请求合并到一起:)

    因为您的原因#2:我检查了JAR,没有包括许可文件和版权声明。