当我为我的maven项目添加一个依赖项时,我想添加一些注释来表明它是什么,以及它所发布的许可证,例如:
<!-- XML parser -->
<!-- Apache License, Version 2.0 -->
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
<scope>compile</scope>
</dependency>
我主要关心的是能够检查(手动,现在)许可证是否彼此兼容。 pom.xml documentation州:
请注意,项目应仅列出可能直接应用于此项目的许可证,而不是列出适用于此项目依赖项的许可证。
有没有更好的方法来捕获这些元数据?也许是一种从依赖关系的POM中“覆盖”<licenses>
信息的方法,如果它丢失了?
答案 0 :(得分:3)
首先,你不能覆盖pom的许可证部分,因为它不是inherited。其次,您可以使用Maven-Licenses-Verifier-Plugin(可通过Maven Central获取)自动检查依赖项的许可证,这将为您处理这种情况,此外您可以生成有关该情况的报告(Example)。
答案 1 :(得分:1)
如果我理解正确,Maven Remote Resources Plugin和License Maven Plugin声称可以执行此操作。
我今天一直在使用License Maven插件,并按照他们的指示生成许可证报告,指出缺少哪些许可证。然后,我可以添加缺少的许可证,并获得项目中所有许可证的报告。但是,我真的希望在生成站点时可以使用此信息,但是缺少第三方依赖项的许可证信息。能够为依赖项本身的新许可证或URL添加URL也很有用(此信息也包含在站点报告中)。
我看了plugin khmarbaise写的,用于验证项目中是否使用了依赖项,但这无助于解决丢失许可证的问题。