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

Gradle构建失败:无法从Artifactory下载oa-common:3.0.0依赖

问题

我有一个Spring Boot Gradle项目,现在无法下载首个依赖oa-common.3.0.0.jar。虽然已经在repositories中配置了Artifactory仓库,但项目似乎没有去这个仓库拉取该依赖。想问问哪里操作错了,有什么解决建议?


相关文件与信息

build.gradle 配置

repositories {
    mavenCentral()
    mavenLocal()
    maven {
        url "${artifactory_contextUrl}"
        credentials {
            username "${artifactory_user}"
            password "${artifactory_password}"
        }
    }
}

wrapper {
    distributionType = Wrapper.DistributionType.BIN
}

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
    compileOnly {
        extendsFrom annotationProcessor
    }
}

dependencies {

    implementation('com.ge.digital.oa.common:oa-common:3.0.0') { 
        exclude module: 'slf4j-log4j12'
        exclude group: 'io.micrometer', module: 'micrometer-core'
    }
    implementation('org.springframework.boot:spring-boot-starter-data-jpa')
    implementation('org.springframework.boot:spring-boot-starter-jdbc')
    implementation('org.springframework.boot:spring-boot-starter-web')

Artifactory中的依赖路径

ARJLY
 com/ge
  digital/oa
   common
     oa-common
      3.0.0
       oa-common-3.0.0.jar

构建错误信息

$ gradle clean build --refresh-dependencies
> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find com.ge.digital.oa.common:oa-common:3.0.0.
     Required by:
         project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 18s
3 actionable tasks: 3 executed

解决建议
  • 检查Artifactory变量是否正确加载:artifactory_contextUrl、artifactory_user、artifactory_password这几个变量得确保在gradle.properties、系统环境变量或CI/CD配置里正确配置了。如果变量没加载,仓库URL会是空的,Gradle根本不会去这个仓库找依赖。可以执行gradle properties -Porg.gradle.debug=true查看变量是否解析正确。

  • 确认Artifactory仓库布局与依赖坐标匹配:从路径看依赖坐标com.ge.digital.oa.common:oa-common:3.0.0是对的,但要确认Artifactory仓库用的是Maven 2默认布局(和当前路径匹配)。另外必须检查该依赖是否有对应的pom.xml或maven-metadata.xml元数据文件——Gradle默认需要这些文件解析依赖,只有jar文件不行。

  • 调整仓库优先级顺序:当前仓库顺序是mavenCentral → mavenLocal → Artifactory,如果本地或中央仓库有同名但版本不符的缓存,Gradle可能提前终止查找。把Artifactory移到最前面,优先从这里查找:

repositories {
    maven {
        url "${artifactory_contextUrl}"
        credentials {
            username "${artifactory_user}"
            password "${artifactory_password}"
        }
    }
    mavenCentral()
    mavenLocal()
}
  • 验证Artifactory仓库权限:确认配置的账号有该仓库的读取权限。可以用curl手动测试:
curl -u 用户名:密码 "你的Artifactory地址/ARJLY/com/ge/digital/oa/common/oa-common/3.0.0/oa-common-3.0.0.jar"

如果下载失败,说明权限有问题,找管理员调整。

  • 查看Gradle调试日志定位问题:执行gradle clean build --refresh-dependencies --info,搜索oa-common:3.0.0,看Gradle实际请求的仓库地址是否包含Artifactory,URL是否正确。如果日志里没出现Artifactory地址,说明仓库配置没生效;如果有请求但返回错误,再针对性排查网络或权限问题。

  • 检查是否开启离线模式:如果Gradle开了离线模式(比如加了--offline参数,或者gradle.properties里设了org.gradle.offline=true),只会用本地缓存,不会去远程仓库拉取。确认没开离线模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:35:30