将 Maven 依赖项列表导出到 CSV

Export maven dependency list to CSV

我想将 Maven 项目的依赖项列表导出到 CSV 或 TSV 文件。

我知道我可以生成依赖项列表作为 "mvn site:site" 命令的一部分,但它的格式非常不适合我的需要。

我需要一个至少包含以下字段的简单 CSV 文件:名称、版本、下载 URL、许可证名称、许可证 URL

是否有任何现成的工具可以让这一切变得简单?

没有。没有现成的工具来生成依赖项和许可证的 CSV 列表。现有工具 mvn dependency:listmvn site:site 将提供数据,但不是 CSV 格式。

原回答: mvn dependency:list 是你需要的maven插件和命令。它需要很多选项,但我认为它们都不会产生 CSV。您必须自己将输出转换为 CSV。应该不会太难。快速 google 找到了 this example 的人,他们在满足您的需求方面做了一些努力。

我需要名称和版本,这是适合我的解决方案。

Unix 提供多种工具来处理文本。在 Windows 上,打开 git bash 并执行以下命令:

mvn -o dependency:list | grep ":.*:.*:compile" | sed "s/\[INFO\]    \([^:]*\):\([^:]*\):jar:\([^:]*\):compile/;;/" | sort -u

这样输出编译依赖如下:

ch.qos.logback;logback-classic;1.1.1
ch.qos.logback;logback-core;1.1.1
com.fasterxml.jackson.core;jackson-annotations;2.8.6

除了 之外,这是为每个依赖项获取 groupId:artifactId:version 元组的干净简单的解决方案,您还可以使用 mvn dependency:purge-local-repository 强制重新下载 Maven 依赖项。

已解析的依赖项的 URL 会在该过程中写入控制台输出。您可以使用 -DoutputFile.

重定向该命令的输出(就像 dependency:list

请注意,根据您分析的是单个项目还是整个项目结构,您可能希望将 -DappendOutput 设置为 true。

检索许可证和许可证-URL要困难得多,因为那不是强制性信息。我能想象到的最简单的方法是实际下载依赖项的 jar 和 pom。 POM 可能 包含许可证信息,如果不包含,则需要分析 jar。