自动获取商业项目中所有相关开源工件的许可证信息

时间:2018-12-30 12:13:28

标签: java maven open-source

在我们公司中,有许多JEE后端应用程序已部署到jfrog工件。每个项目都包含对其他Maven存储库源的依赖,而其他Maven存储库源又具有许多其他依赖。因此,当我使用其中一种依赖项时,例如

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>provided</scope>          
    </dependency>
  </dependencies>
</project>

Sample.ProjectA.Project-A可能具有某些商业依赖性。 我看到maven使用了“许可证”字段来放置许可证信息

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

我还找到了一种通过报告信息插件maven-project-info-reports-plugin

获得Maven许可证的方法。

现在,告诉maven警告是否有任何商业许可证,那将是很棒的。有可能这样做吗?

1 个答案:

答案 0 :(得分:2)

有两个Maven插件可以验证项目依赖项使用的许可证:

  • “ ayoy-license-verifier-maven-plugin”(reference
  • “ khmarbaise / Maven-License-Verifier-Plugin”(reference

但是,这种方法存在一些问题:

  • 某些Maven工件未在其POM文件中声明许可证。
  • 这些插件使用众所周知的名称或许可证的URL依赖于依赖项的POM中的<license>。不幸的是,这些不是标准化的(如示例“ licenses.xml”文件中所示)。由您自己确定解决此问题的方法。
  • 这些插件不会尝试将许可证分类为“商业”或“非商业”。您必须自己解决这个问题。