dependencies - 如何使用maven生成3rd party依赖许可文档

标签 dependencies maven reporting

我正在开发一个开源项目,该项目将以二进制形式发布。我想在程序中包含一个“关于”页面,其中包含有关我的项目使用的所有第 3 方库和许可证的信息。

此问题讨论最佳实践:

What is the best practice for arranging third-party library licenses "paperwork"?

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

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

  • 库名称
  • 网址
  • 许可证名称
  • 许可证网址
  • 完整许可文本

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

命令“mvn project-info-reports:dependency”生成的内容与我所要求的类似,但它的数据太多,无法实际包含在二进制文件中并在“关于”页面上向最终用户显示。

我想要实现的目标的一个很好的例子是 Chrome 中的 chrome://credits/页面或 Firefox 中的“about:license”页面。虽然我更希望有一个纯文本版本,但这些示例的简单 html 也可以工作。

这似乎是一个常见的要求,但我没有找到如何使用 Maven 实现这一点。

最佳答案

这个插件正是我正在寻找的:

https://github.com/jinnovations/attribution-maven-plugin

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

它还处理 pom 配置设置,这些设置可以标记那些未在自己的 pom 中声明自己许可证的依赖项所使用的许可证,正如 Jules 的回答表明许多都丢失了,但足够的存在使这是一种值得的方法。

关于dependencies - 如何使用maven生成3rd party依赖许可文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36473310/

相关文章:

java - 想要将程序作为框架分发,但担心依赖项的数量

Makefile 依赖项不适用于虚假目标

android - 当类明显存在时,我收到 java.lang.NoClassDefFoundError

mysql - 合并 MySQL 和 SQL Server 数据源以进行报告

oracle - 除了oracle报告构建器之外,还有其他工具可以用于构建oracle报告吗?

linux - apt-get 没有安装任何 linux 服务器

删除 ACRA 后,android 找不到符号类 RequiresApi

maven - [Cucumber][JVM][Maven]测试不会通过 Maven 从命令行运行

maven - 如何使用 Maven POM 文件运行 testNG 测试

xcode - Jenkins 未显示某些项目的测试结果趋势图