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

本地可正常构建的项目在JitPack上构建失败求助

问题解决:JitPack构建失败及Folia依赖配置问题

核心错误分析

从构建日志可定位两个关键失败原因:

  1. Folia依赖配置无效:你给dev.folia:folia-api指定了targetConfiguration = "runtime",但该依赖的Maven描述符中不存在这个配置,导致Gradle无法解析依赖。
  2. Java版本环境不匹配:项目本地配置Java 8编译,但JitPack默认使用Java 17构建,存在兼容性差异。
  3. 产物路径不匹配:JitPack构建时会自动覆盖group和version参数,但你的发布配置未兼容该逻辑,导致构建后找不到产物。

解决方案

1. 修复Folia依赖配置

移除无效的targetConfiguration = "runtime"配置。如果代码中直接引用了Folia的API类,保留compileOnly;如果仅需运行时依赖且无代码引用,可改用runtimeOnly(需确保代码中无Folia相关import):

dependencies {
    // ... 其他依赖保留
    compileOnly("dev.folia:folia-api:1.20.1-R0.1-SNAPSHOT")
    // 若确认无代码引用,替换为:
    // runtimeOnly("dev.folia:folia-api:1.20.1-R0.1-SNAPSHOT")
}

2. 统一Java版本

在build.gradle.kts中明确指定Java版本,同时通过jitpack.yml强制JitPack使用Java 8:

  • 修改build.gradle.kts,添加Java工具链配置:
java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(8))
    }
}

tasks.withType<JavaCompile> {
    options.encoding = "UTF-8"
    options.release.set(8)
}
  • 在项目根目录创建jitpack.yml文件:
jdk:
  - openjdk8

3. 调整发布配置兼容JitPack参数

修改publishing块,允许JitPack覆盖group和version参数,确保产物路径匹配预期:

publishing {
    publications.create<MavenPublication>("maven") {
        from(components["java"])
        groupId = project.findProperty("group")?.toString() ?: group
        artifactId = "CrypticLib"
        version = project.findProperty("version")?.toString() ?: version
    }
}

4. 验证并重新构建

本地先执行./gradlew clean publishToMavenLocal验证配置无误,再推送代码到GitHub,重新触发JitPack构建。

完整修改后的build.gradle.kts示例

java.sourceCompatibility = JavaVersion.VERSION_1_8
java.targetCompatibility = JavaVersion.VERSION_1_8
group = "com.github.yufiriamazenta"
version = "1.0.0-dev11"

plugins {
    `java-library`
    `maven-publish`
}

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(8))
    }
}

repositories {
    mavenLocal()
    maven("https://repo.rosewooddev.io/repository/public/")//提供spigot
    maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
    maven("https://repo.extendedclip.com/content/repositories/placeholderapi/")
    maven("https://repo.papermc.io/repository/maven-public/")
    maven("https://jitpack.io")
    mavenCentral()
}

dependencies {
    compileOnly("org.jetbrains:annotations:24.0.1")
    compileOnly("net.md-5:bungeecord-chat:1.16-R0.4")
    compileOnly("net.kyori:adventure-api:4.14.0")
    compileOnly("org.spigotmc:spigot:1.20")
    compileOnly("dev.folia:folia-api:1.20.1-R0.1-SNAPSHOT")
    compileOnly("me.clip:placeholderapi:2.11.1")
}

tasks.withType<JavaCompile> {
    options.encoding = "UTF-8"
    options.release.set(8)
}

publishing {
    publications.create<MavenPublication>("maven") {
        from(components["java"])
        groupId = project.findProperty("group")?.toString() ?: group
        artifactId = "CrypticLib"
        version = project.findProperty("version")?.toString() ?: version
    }
}

内容的提问来源于stack exchange,提问作者YufiriaMazenta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:18:10