Maven复制依赖Windows正常Linux异常问题排查
检查Thin Jar插件与Spring Boot版本的兼容性
Spring Boot 2.7.x对应的Thin Jar Plugin建议使用1.1.0及以上版本,旧版本可能存在兼容性问题。在pom.xml中明确指定插件版本:<plugin> <groupId>org.springframework.boot.experimental</groupId> <artifactId>spring-boot-thin-maven-plugin</artifactId> <version>1.1.0</version> <executions> <execution> <id>resolve</id> <goals> <goal>resolve</goal> </goals> <phase>package</phase> </execution> </executions> </plugin>清理并强制更新Maven本地仓库
Linux下Maven仓库可能存在缓存的不完整依赖或损坏文件,执行以下命令清理缓存并强制更新:mvn clean install -U-U参数会强制Maven更新所有快照和发布版本的依赖,确保本地仓库中的jar包是完整的。验证依赖Scope与类型配置
使用mvn dependency:tree命令查看依赖树,确认spring-context-support等缺失jar的依赖类型为jar,且scope为compile(非provided或test)。如果存在依赖被意外设置为pom类型,可在pom.xml中显式指定:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.3.24</version> <type>jar</type> </dependency>检查Thin插件输出目录的跨平台配置
确保插件配置的输出目录使用斜杠/而非Windows反斜杠\,避免Linux下路径解析错误:<plugin> <groupId>org.springframework.boot.experimental</groupId> <artifactId>spring-boot-thin-maven-plugin</artifactId> <version>1.1.0</version> <configuration> <outputDirectory>target/dependency</outputDirectory> </configuration> </plugin>确认Maven运行环境的Settings配置
执行mvn -version查看当前Maven使用的settings.xml路径,确认该配置文件中的镜像、仓库配置正确,不存在仅返回pom文件的镜像源。如果使用私有镜像,需确认镜像仓库中包含对应jar包的完整资源。手动修复缺失的仓库文件
如果上述步骤无效,可手动下载缺失的jar包(如spring-context-support-5.3.24.jar),放置到Linux本地Maven仓库的对应目录(~/.m2/repository/org/springframework/spring-context-support/5.3.24/),然后重新执行构建。
内容的提问来源于stack exchange,提问作者S317

