将maven依赖关系列表导出为CSV

时间:2016-10-26 22:19:46

标签: java maven csv maven-site-plugin

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

我知道我可以生成依赖列表作为" mvn网站的一部分:site"命令,但它的格式非常不方便。

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

是否有现成的工具可以轻松实现这一目标?

3 个答案:

答案 0 :(得分:1)

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

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

mvn -o dependency:list | grep ":.*:.*:compile" | sed "s/\[INFO\]    \([^:]*\):\([^:]*\):jar:\([^:]*\):compile/\1;\2;\3/" | 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

答案 1 :(得分:0)

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

原始答案: mvn dependency:list是您需要的maven插件和命令。它需要很多选项,但我认为它们中的任何一个都不会产生CSV。您必须自己将输出转换为CSV。它不应该太难。一个快速的谷歌找到了this example的某个人,他们走向了你需要的地方。

答案 2 :(得分:0)

除了koppor's answer,这是一个简洁的解决方案,可以为每个依赖项获取groupId:artifactId:version元组,您可以使用mvn dependency:purge-local-repository强制重新下载maven依赖项。

在此过程中,已解析的依赖项的URL将写入控制台输出。您可以使用dependency:list重定向该命令的输出(就像-DoutputFile)。

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

检索许可证和许可证URL非常困难,因为这不是必需信息。我可以想象的最简单的方法是实际下载依赖项的jar和pom。 POM 可能包含许可证信息,如果不是,则需要对jar进行分析。