Dependencies 如何使用maven生成第三方依赖许可证文档

Dependencies 如何使用maven生成第三方依赖许可证文档,dependencies,maven,reporting,Dependencies,Maven,Reporting,我正在做一个开源项目,它将作为二进制文件发布。我想在程序中包含一个“关于”页面,其中包含有关我的项目使用的所有第三方库和许可证的信息 本问题讨论最佳实践: 其他问题讨论如何使用许可通知更新源文件。这两个问题都没有解决我的问题 我想使用Maven中的依赖信息来生成上面链接的问题中描述的LICENSE-3RD-PARTY.txt。具体而言,我希望它创建一个文本文件,其中包括: 库名 网址 许可证名称 许可证URL 许可证全文 对于pom.xml中的所有依赖项和可传递依赖项,上述内容应包含在此文

我正在做一个开源项目,它将作为二进制文件发布。我想在程序中包含一个“关于”页面,其中包含有关我的项目使用的所有第三方库和许可证的信息

本问题讨论最佳实践:

其他问题讨论如何使用许可通知更新源文件。这两个问题都没有解决我的问题

我想使用Maven中的依赖信息来生成上面链接的问题中描述的LICENSE-3RD-PARTY.txt。具体而言,我希望它创建一个文本文件,其中包括:

  • 库名
  • 网址
  • 许可证名称
  • 许可证URL
  • 许可证全文
对于pom.xml中的所有依赖项和可传递依赖项,上述内容应包含在此文件中。HTML输出或json/xml可解析版本也是可以接受的

命令“mvnprojectinfo reports:dependencies”生成的内容与我要求的内容类似,但它的数据太多,无法实际包含在二进制文件中,并在about页面上显示给最终用户

我正在努力实现的好例子是chrome://credits/ Chrome中的页面或Firefox中的“关于:许可证”页面。虽然我更希望有一个纯文本版本,但这些示例的简单html也可以


这似乎是一个常见的要求,但我没有找到用maven实现这一点的方法。

我的小样本非科学调查(10)表明,maven central中只有大约60%的项目在POM文件中定义了许可证。虽然大多数大牌项目都有,但许多较小的专业项目却没有。因此,除非您只使用流行的项目,否则这里的自动化不太可能起作用。这可能会减少您的工作量,但老实说,我怀疑在项目的jar文件中搜索名为Copying、License或类似的文件可能会更有效。

这个插件正是我想要的:

它创建了一个可解析的xml文件,可以从应用程序中使用该文件来显示“关于/贡献”页面

它还处理pom配置设置,这些设置可以标记没有在自己的pom中声明自己的许可证的依赖项所使用的许可证,正如Jules answer指出的那样,许多许可证缺失,但存在足够多的许可证,使这成为一种值得采用的方法。

我不知道“最佳实践”,但自动收集依赖项的许可证,例如,通过您的构建工具,如
maven
,绝对是一个好主意。至于Maven的许可证插件,可能会帮助您实现一些需求