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

删除.m2文件夹后Maven Install报错,首次运行曾成功

解决SpringBatchSample项目删除.m2后mvn install失败的问题

你的问题根源在于pom.xml中的依赖冲突、版本不兼容以及配置不一致——第一次构建成功是因为本地.m2仓库中可能存在之前残留的兼容依赖,删除后重新下载时这些问题就彻底暴露出来了。下面是具体的解决方案:

1. 修复pom.xml中的核心问题

(1)移除冲突的错误依赖

你的pom里有一个明显错误的Spring Batch依赖:

<dependency>
    <groupId>org.springframework.batch</groupId>
    <artifactId>org.springframework.batch.core</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

这个依赖的artifactId是错误的(正确值应为spring-batch-core),而且版本2.1.1.RELEASE和你同时引入的3.0.7.RELEASE版本的Spring Batch核心依赖完全冲突,直接删除这一段即可。

(2)修复Spring Framework与Spring Batch的版本兼容性

Spring Batch 3.0.7.RELEASE需要依赖Spring Framework 4.2.9.RELEASE及以上版本,但你当前使用的Spring 3.1.3.RELEASE版本过于老旧,两者完全不兼容。建议将Spring版本升级到稳定兼容的4.3.30.RELEASE。

(3)统一JDK版本配置

你的pom中properties里配置的jdk.version是1.8,但maven-compiler-plugin却指定了source和target为1.6,这会导致编译时版本不一致的问题。需要将插件配置与properties统一,同时建议升级插件版本到支持JDK8的版本。

2. 修改后的关键pom片段参考

Properties部分

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jdk.version>1.8</jdk.version>
    <spring.version>4.3.30.RELEASE</spring.version>
    <spring.batch.version>3.0.7.RELEASE</spring.version>
</properties>

Dependencies部分(清理后)

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <!-- Spring Framework依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
    </dependency>
    <!-- Spring Batch依赖(统一版本) -->
    <dependency>
        <groupId>org.springframework.batch</groupId>
        <artifactId>spring-batch-core</artifactId>
        <version>${spring.batch.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.batch</groupId>
        <artifactId>spring-batch-infrastructure</artifactId>
        <version>${spring.batch.version}</version>
    </dependency>
    <!-- Spring Batch测试依赖,建议加上test scope -->
    <dependency>
        <groupId>org.springframework.batch</groupId>
        <artifactId>spring-batch-test</artifactId>
        <version>${spring.batch.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

Build部分的Compiler插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version> <!-- 升级到支持JDK8的插件版本 -->
    <configuration>
        <source>${jdk.version}</source>
        <target>${jdk.version}</target>
        <encoding>${project.build.sourceEncoding}</encoding>
    </configuration>
</plugin>

3. 执行清理并重新构建

修改完pom后,执行以下命令强制更新依赖并重新构建:

mvn clean install -U

-U参数会强制Maven更新快照和依赖,确保从仓库下载正确的兼容版本。

这样就能解决删除.m2后构建失败的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:28:53