You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven无法解析GitHub上的自定义仓库构件问题咨询

问题分析与解决方案

一、校验文件(.sha1/.md5)的必要性

Maven/Gradle默认会验证构件的哈希值以确保完整性,虽然部分场景下可跳过校验,但缺少这些文件是KMT库无法解析的核心原因——你的Game库能正常工作正是因为包含了校验文件。当构建工具请求构件时,会自动尝试获取对应的.sha1/.md5文件,若找不到,大概率会判定构件无效并拒绝解析。

二、自动生成校验文件的方法

1. Gradle 自动生成(推荐)

如果KMT项目使用maven-publish插件发布构件,Gradle会自动生成.sha1和.md5文件,只需确保发布配置正确:

plugins {
    id 'java'
    id 'maven-publish'
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            groupId = 'com.github.polyrocketmatt'
            artifactId = 'kmt'
            version = '0.0.4'
        }
    }
    repositories {
        maven {
            url = uri('https://github.com/PolyRocketMatt/Warehouse/raw/main/') // 替换为你的仓库raw地址
            credentials {
                username = System.getenv('GITHUB_USERNAME')
                password = System.getenv('GITHUB_TOKEN')
            }
        }
    }
}

执行./gradlew publish后,Gradle会自动生成所有必要校验文件并上传到仓库。

2. 手动生成(应急方案)

若无法通过Gradle发布,可通过命令行手动生成:

  • 生成SHA1校验文件:
    sha1sum KMT-0.0.4.jar | awk '{print $1}' > KMT-0.0.4.jar.sha1
    sha1sum KMT-0.0.4.pom | awk '{print $1}' > KMT-0.0.4.pom.sha1
    
  • 生成MD5校验文件:
    md5sum KMT-0.0.4.jar | awk '{print $1}' > KMT-0.0.4.jar.md5
    md5sum KMT-0.0.4.pom | awk '{print $1}' > KMT-0.0.4.pom.md5
    

注意:校验文件中仅保留哈希值,不要包含文件名。

三、其他可能的遗漏配置排查

  1. 构件命名与Maven规范一致性
    确保pom文件中的groupId/artifactId/version与路径、文件名严格匹配:

    • 若pom中artifactId为kmt(小写),则文件名应为kmt-0.0.4.jar,而非KMT-0.0.4.jar(Maven对大小写敏感)。对比你的Game库,若其pom中artifactId为Game,则文件名Game-3.0.7.jar是匹配的,KMT需保持一致。
  2. 私有仓库访问权限配置
    引入KMT的项目必须配置GitHub私有仓库的认证信息:

    • Gradle项目:在settings.gradle或build.gradle中添加:
      repositories {
          maven {
              url = uri('https://github.com/PolyRocketMatt/Warehouse/raw/main/')
              credentials {
                  username = '你的GitHub用户名'
                  password = '你的GitHub个人访问令牌(需有仓库读取权限)'
              }
          }
      }
      
    • Maven项目:在settings.xml中配置server:
      <servers>
          <server>
              <id>github-warehouse</id>
              <username>你的GitHub用户名</username>
              <password>你的GitHub个人访问令牌</password>
          </server>
      </servers>
      
  3. GitHub仓库的Raw地址正确性
    确保引入时使用的是仓库的Raw文件URL,而非仓库主页URL。例如,若构件上传到main分支,正确的仓库URL应为https://github.com/PolyRocketMatt/Warehouse/raw/main/,而非https://github.com/PolyRocketMatt/Warehouse。

  4. 本地构建缓存清理
    本地Maven/Gradle缓存可能存在无效记录,执行以下命令清理:

    • Gradle:./gradlew clean build --refresh-dependencies
    • Maven:mvn clean install -U

内容的提问来源于stack exchange,提问作者Matthias K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:20:53