如何将许可证元数据添加到maven依赖项?

时间:2011-08-16 18:43:05

标签: open-source maven licensing metadata

当我为我的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>信息的方法,如果它丢失了?

2 个答案:

答案 0 :(得分:3)

首先,你不能覆盖pom的许可证部分,因为它不是inherited。其次,您可以使用Maven-Licenses-Verifier-Plugin(可通过Maven Central获取)自动检查依赖项的许可证,这将为您处理这种情况,此外您可以生成有关该情况的报告(Example)。

答案 1 :(得分:1)

如果我理解正确,Maven Remote Resources PluginLicense Maven Plugin声称可以执行此操作。

我今天一直在使用License Maven插件,并按照他们的指示生成许可证报告,指出缺少哪些许可证。然后,我可以添加缺少的许可证,并获得项目中所有许可证的报告。但是,我真的希望在生成站点时可以使用此信息,但是缺少第三方依赖项的许可证信息。能够为依赖项本身的新许可证或URL添加URL也很有用(此信息也包含在站点报告中)。

我看了plugin khmarbaise写的,用于验证项目中是否使用了依赖项,但这无助于解决丢失许可证的问题。