如何在 maven repo 下获取所有 pom.xml

Posted

技术标签:

【中文标题】如何在 maven repo 下获取所有 pom.xml【英文标题】:How to get all pom.xml present under maven repo 【发布时间】:2020-03-21 15:32:25 【问题描述】:

有什么办法可以得到http://repo.maven.apache.org/maven2下的所有pom.xmls

谢谢, 维杰

【问题讨论】:

为什么需要它们?除此之外你知道还有多少吗?你查过search.maven.org/stats @khmarbaise 是的,我想从每个工件(312,460 个唯一工件)中提取一个 pom.xml 并解析每个 pom.xml 并从中读取数据。 首先,如果你喜欢这样做,你必须处理 4,321,601,因为这是每个 groupId/artifactId/version 组合的 pom.xml,你想解析它们的目的是什么? 我想知道所有 java 项目及其每个项目的 scm url。而且我不想要 4,321,601,因为我需要每个工件一个 pom.xml。 您打算如何处理所有这些 URL? 【参考方案1】:

作为最佳实践,您不应该在远程或本地存储库中扫描和解析 pom。在 maven Central 上,他们已经为您扫描和解析了。

只需从index dir下载nexus-maven-repository-index.gz(你需要那个700M长的大文件,其他名为nexus-maven-repository-index.XXX.gz的文件是增量更新)

然后使用Maven Indexer解压索引,maven indexer可以作为java库和CLI程序使用 作为运行 Maven 索引器的结果,您将获得普通的 Apache Lucene 索引,并具有增量更新它的能力。

Here 是一个文档,它解释了如何从中解压索引和查询数据。 很可能,索引包含您需要的所有数据。

【讨论】:

【参考方案2】:

对于仍有相同问题的人,我开发了一种更简单的方法来提取适用于大多数基于 Nexus 的 Maven 存储库的 maven 索引索引:Maven Index Exporter。

如果这是您的目标,您可以从那里简单地获取 pom 列表并下载它们。

但请注意,它非常庞大:为 Maven Central 索引了大约 2000 万份文档,文本导出为 14GB。截至今天,Maven Central 上大约有 650 万个 pom 文件。

【讨论】:

以上是关于如何在 maven repo 下获取所有 pom.xml的主要内容,如果未能解决你的问题,请参考以下文章

Maven安装与使用

Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from https://repo.maven.apache.org/maven

Maven 3.0 的“mvn release:perform”不喜欢不在其 git repo 根目录中的 pom.xml

如何通过maven测试Jenkins项目下的特定模块?

如何在 Maven 中使用 POM 作为依赖项?

pom文件必须和maven版本一致吗