如何检索导入特定Maven依赖项的GitHub Java项目?

问题描述 投票:2回答:2

是否有一种方法可以访问GitHub中基于artifactIdgroupId标记的内容导入给定Maven依赖项的Java项目列表?

例如,我想知道GitHub中的哪些项目正在导入依赖项<artifactId>ApacheJMeter_core</artifactId><groupId>org.apache.jmeter</groupId>

有可能吗?怎么做?

maven github github-api
2个回答
0
投票

粗略的第一个近似值是使用文件名pom.xml的GitHub搜索:

https://github.com/search?utf8=%E2%9C%93&q=aaaa+extension%3Axml+filename%3Apom.xml+language%3AXML&type=Code&ref=advsearch&l=XML&l=

但是您需要检查每个结果,以查看例如artifctId是否在<dependencies>部分中列出。

[您可能还会考虑针对Google BigQuery做一个GitHub public dataset,其中包括280万个开源GitHub存储库中内容的完整快照。


关闭的更精确的功能是GitHub Dependency Graph,可用于受支持语言(包括Java / Maven)的公共项目

您可以try its API(目前在预览中,请参阅“ Access to a Repositories Dependency Graph”),但这将是每个项目的项目。


0
投票

GitHub可通过REST API v3使用-您可以在advanced search中搜索所有可用内容。

示例

https://api.github.com/search/code?q=org.apache.jmeter+filename:pom.xml+path:/+repo:jmeter-maven-plugin/jmeter-maven-plugin

结果

{
  "total_count": 1,
  "incomplete_results": false,
  "items": [
    {
      "name": "pom.xml",
      ...
      "repository": {
        ...
        "full_name": "jmeter-maven-plugin/jmeter-maven-plugin",

详细信息

您无法按其内容搜索存储库-这是API的限制。但是,您可以按任意方式选择search for code。并从结果中解析回购信息。

通过单个存储库的简短示例is limited。要摆脱此限制并在所有公共存储库中进行搜索,您必须通过基本身份验证或使用OAuth2令牌authenticate

© www.soinside.com 2019 - 2024. All rights reserved.