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

如何为Gradlew构建的容器化应用添加本地Maven依赖?

问题:Docker容器内Gradle构建无法识别本地Maven仓库依赖

背景

我正在开发一个通过Docker本地运行的应用,核心Dockerfile内容如下:

FROM eclipse-temurin:17 as source
COPY . /data
WORKDIR /data

FROM source as build
RUN ./gradlew clean build --info -x test

应用通过项目内的Gradle Wrapper构建jar包。此前仅使用Maven中央仓库,build.gradle.kts的仓库配置为:

repositories {
    mavenCentral()
}

现在需要添加本地Maven仓库中的依赖,已在上述配置中加入mavenLocal(),并在dependencies块声明了依赖。IntelliJ可以正常将该jar包加入External Libraries,但容器内构建时出现问题。

已尝试的操作

  • 在docker-compose.yml中挂载本地.m2/repository到容器内的/root/.m2/repository:
    volumes:
      - ./config:/config
      - ~/.m2/repository:/root/.m2/repository
    
  • 确认容器内存在目标jar包,但构建依然失败
  • 尝试将mavenLocal()替换为以下配置,均无效:
    maven(url = "/root/.m2/repository")
    # 或
    maven(url = "~/.m2/repository")
    

构建报错信息

47.23 FAILURE: Build failed with an exception.
47.23 
47.23 * What went wrong:
47.23 Execution failed for task ':compileJava'.
47.23 > Could not resolve all files for configuration ':compileClasspath'.
47.23    > Could not find com.x:y:0.0.0-main-SNAPSHOT.
47.23      Required by:
47.23          project :

--info模式下的关键日志

50.36 Resource missing. [HTTP GET: https://repo.maven.apache.org/maven2/com/x/y/0.0.0-main-SNAPSHOT/maven-metadata.xml]
50.36 Resource missing. [HTTP GET: https://repo.maven.apache.org/maven2/com/x/y/0.0.0-main-SNAPSHOT/y-0.0.0-main-SNAPSHOT.pom]

疑问

  1. 我遗漏了哪些必要配置?
  2. 是否需要在Gradle中添加额外设置,告知Gradle Wrapper去特定位置查找依赖文件?
  3. 如何正确将本地Maven仓库中的依赖传递到容器的构建流程中?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:53:08