将 Maven 依赖项列表导出到 CSV
Export maven dependency list to CSV
我想将 Maven 项目的依赖项列表导出到 CSV 或 TSV 文件。
我知道我可以生成依赖项列表作为 "mvn site:site" 命令的一部分,但它的格式非常不适合我的需要。
我需要一个至少包含以下字段的简单 CSV 文件:名称、版本、下载 URL、许可证名称、许可证 URL
是否有任何现成的工具可以让这一切变得简单?
没有。没有现成的工具来生成依赖项和许可证的 CSV 列表。现有工具 mvn dependency:list
和 mvn 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。
我想将 Maven 项目的依赖项列表导出到 CSV 或 TSV 文件。
我知道我可以生成依赖项列表作为 "mvn site:site" 命令的一部分,但它的格式非常不适合我的需要。
我需要一个至少包含以下字段的简单 CSV 文件:名称、版本、下载 URL、许可证名称、许可证 URL
是否有任何现成的工具可以让这一切变得简单?
没有。没有现成的工具来生成依赖项和许可证的 CSV 列表。现有工具 mvn dependency:list
和 mvn 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。