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

Spring Boot升级后Maven依赖异常:Project B未加载(显示无测试代码)

解决Spring Boot 3.x + Java 17下Maven依赖Project B未加载JAR的问题

可能原因及对应解决步骤

1. 检查Project B的Maven打包配置

  • 确认Project B的pom.xml中打包类型为JAR:
    <packaging>jar</packaging>
    
  • 排查maven-jar-plugin配置,确保没有意外排除主代码目录:
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.3.0</version> <!-- 适配Spring Boot 3.x的版本 -->
      <configuration>
        <!-- 无排除主源码的<excludes>配置 -->
      </configuration>
    </plugin>
    
  • 执行mvn clean install,确认Project B的target目录生成了包含主代码的完整JAR包(大小符合预期)。

2. 检查Project A的依赖配置

  • 确认Project A的pom.xml中依赖Project B的坐标完全正确,且无错误的作用域配置:
    <dependency>
      <groupId>com.yourgroup</groupId>
      <artifactId>project-b</artifactId>
      <version>x.y.z</version>
      <!-- 避免误加<scope>test</scope>导致依赖仅在测试环境生效 -->
    </dependency>
    
  • 检查dependencyManagement节点,确保Project B的版本未被错误覆盖或冲突。

3. STS IDE缓存与同步问题

  • 执行STS的Maven -> Update Project操作,勾选Force Update of Snapshots/Releases重新同步依赖。
  • 清理STS工作区缓存:依次点击Window -> Preferences -> General -> Workspace,点击Clean按钮;同时删除Maven本地仓库中Project B的对应目录(一般在~/.m2/repository/com/yourgroup/project-b/),重新执行mvn clean install。
  • 确认Project B的项目配置:右键Project B -> Properties -> Project Facets,确保Java版本设为17,Spring Boot版本匹配3.2.6,且项目类型为Maven JAR项目。

4. Spring Boot 3.x Maven插件适配

  • 确保Project B的pom.xml中Spring Boot Maven插件版本与Spring Boot版本一致:
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>3.2.6</version>
      <executions>
        <execution>
          <goals>
            <goal>repackage</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    
  • 若Project B是普通JAR(非Spring Boot应用),移除spring-boot-maven-plugin的repackage目标,避免打包成可执行JAR导致依赖识别异常。

5. Java 17模块系统影响(若启用JPMS)

  • 确认Project B的module-info.java正确导出需被Project A访问的包:
    module com.yourgroup.projectb {
      exports com.yourgroup.projectb.service;
      // 按需导出其他业务包
    }
    
  • Project A的module-info.java需声明对Project B的依赖:
    module com.yourgroup.projecta {
      requires com.yourgroup.projectb;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 03:45:00