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

Spring Maven项目部署时无法解析admin-service依赖,请求排查原因

Spring Boot Maven模块部署依赖解析失败问题排查

模块配置信息

admin-service的pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.springframework</groupId>
<artifactId>sai-edm-adminpanel</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>sai-edm-adminpanel</name>
<description>sai-edm-adminpanel</description>
<properties>
    <java.version>17</java.version>
</properties>

authorization service的pom.xml(依赖admin-service)

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.springframework</groupId>
<artifactId>sai-edm-auth</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>sai-edm-auth</name>
<description>sai-edm-auth</description>

<properties>
    <java.version>17</java.version>
    <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
<dependencies>
    <dependency>
        <groupId>com.springframework</groupId>
        <artifactId>sai-edm-adminpanel</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>compile</scope>
    </dependency>

部署错误信息

Failed to execute goal on project sai-edm-auth: Could not resolve dependencies for project com.springframework:sai-edm-auth:jar:0.0.1-SNAPSHOT: Could not find artifact com.springframework:sai-edm-adminpanel:jar:0.0.1-SNAPSHOT in spring-milestones (https://repo.spring.io/milestone) -> [Help 1]

问题原因分析

  1. 本地与部署环境仓库不一致:本地运行正常是因为admin-service的jar已安装到你的本地Maven仓库(~/.m2/repository),但部署环境的Maven仓库中没有这个SNAPSHOT版本的jar包,Maven只能从配置的远程公共仓库(此处为spring-milestones)查找,自然找不到自定义模块的产物。
  2. 自定义模块未上传至部署可访问的仓库:你的admin-service是私有模块,SNAPSHOT版本不会自动同步到公共仓库,部署环境无法从公共仓库拉取该依赖。
  3. 缺少多模块统一管理:当前两个模块是独立的Spring Boot项目,没有通过父pom关联,部署时无法自动触发依赖模块的构建与安装。

解决方案

方案1:在部署环境手动安装admin-service

进入部署环境中admin-service的根目录,执行Maven安装命令:

mvn clean install

该命令会将admin-service的jar包安装到部署环境的本地Maven仓库,之后部署sai-edm-auth时即可找到依赖。

方案2:搭建私有Maven仓库(如Nexus、Artifactory)

  1. 在两个模块的pom.xml中配置私有仓库地址;
  2. 执行mvn clean deploy将admin-service的SNAPSHOT版本上传至私有仓库;
  3. 确保部署环境的Maven配置能访问该私有仓库,部署sai-edm-auth时即可自动拉取依赖。

方案3:重构为多模块Maven项目

  1. 创建父pom项目,将两个模块作为子模块:
<groupId>com.springframework</groupId>
<artifactId>sai-edm-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
    <module>sai-edm-adminpanel</module>
    <module>sai-edm-auth</module>
</modules>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.3</version>
</parent>

<properties>
    <java.version>17</java.version>
    <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
  1. 修改子模块的parent为父pom,移除重复的groupId和version:
    admin-service子模块修改后:
<parent>
    <groupId>com.springframework</groupId>
    <artifactId>sai-edm-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>sai-edm-adminpanel</artifactId>
<name>sai-edm-adminpanel</name>
<description>sai-edm-adminpanel</description>

<properties>
    <java.version>17</java.version>
</properties>
  1. 在父项目根目录执行mvn clean install,会自动构建并安装所有子模块,后续部署sai-edm-auth时可直接依赖本地构建的模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:05:24