我正在开发一个开源项目,该项目将以二进制形式发布。我想在程序中包含一个“关于”页面,其中包含有关我的项目使用的所有第 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/