gpt4 book ai didi

java - 自动获取商业项目中所有依赖开源 Artifact 的许可证信息

转载 作者:行者123 更新时间:2023-12-02 01:44:00 33 4
gpt4 key购买 nike

我们公司有很多JEE后端应用程序部署到jfrog artifactory。每个项目都包含对其他 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 许可证的方法 maven-project-info-reports-plugin

现在如果有任何商业许可证,告诉 maven 发出警告就太好了。有可能这样做吗?

最佳答案

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

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

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

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

关于java - 自动获取商业项目中所有依赖开源 Artifact 的许可证信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53977481/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com