Maven构建失败错误:invalid target release: xx

无效的目标发行版: 21 和springboot爆错 阅读详情

问题出现

出现此问题的pom.xml文件配置如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.4</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.github.ybqdren</groupId>
  <artifactId>demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>demo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

执行maven complier 后构建失败:
在这里插入图片描述


问题出现原因分析

未显式指定Maven-source -target 参数。


解决方案

pom.xml中指定Maven编译语言版本和目标语言版本:

  <properties>
	<!-- ... -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
	<!-- ... -->
  </properties>

显式指定maven-compiler-plugin插件版本,并配置sourcetarget参数:

  <build>
    <plugins>
	  <!-- .... -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

问题解决

修改后的pom.xml文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.4</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.github.ybqdren</groupId>
  <artifactId>demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>demo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>


其他问题

若在修改后未生效,先执行maven clean对历史文件进行清除再重试。


参考资料

Maven与JDK版本管理:解决Java编译版本冲突 Java开发中,Maven构建工具与JDK版本管理是确保项目兼容性的关键。理解Maven编译器插件如何通过source、targetrelease参数控制字节码版本,能够有效避免常见的版本冲突问题。在实际工程中,高版本JDK编译低版本代码时,需要特别注意API兼容性和字节码验证机制。通过合理配置maven-compiler-plugin,结合Java 8到Java 21等LTS版本的特性差异,开发者可以构建出稳定可靠的多版本兼容项目。本文通过典型错误案例和解决方案,深入解析了Maven与JDK版本管理的核 阅读详情

相关推荐

kkFileView源码编译实战:从拉取代码到生成安装包,我踩过的坑都在这了

本文详细记录了kkFileView源码编译的全过程,从环境准备到生成安装包,特别针对JDK版本选择、Maven配置优化、常见编译错误等关键环节提供了实用解决方案。通过实战经验分享,帮助开发者高效完成kkFileView的源码编译和定制化部署,避免常见陷阱。

chenkai5182的博客 469

Maven error:Fatal error compiling: invalid target release: 11

在命令行使用 Maven 的时候出现以下错误 我出现错误的原因是因为 JAVA_HOME 配置的目录 和 命令 java的版本不一致导致的。调整 JAVA_HOME 和 java命令是同一个版本即可。 机器上安装了多个java版本, 配置的 JAVA_HOME 是指向 1.8, 而 java 命令是 14. echo $JAVA_HOME /home/xxx/applications/jdk1.8.0_161 java -version java version "14.0.1" 2020-04-

galoiszhou的博客 1万+

告别官方包!手把手教你从源码编译最新版kkFileView(附避坑指南)

本文详细介绍了如何从源码编译最新版kkFileView,包括环境准备、源码获取、依赖管理、编译流程及常见问题解决方案。通过实战指南,帮助开发者摆脱对官方安装包的依赖,实现深度定制和优化,满足企业级文件预览需求。

chenkai5182的博客 402

错误: 无效的目标发行版:21

我的所有配置都没问题,检查了一下午,artifacts、tomcat都没问题。使用此方法前,请检查你的jdk版本是否设置一致,以我用的jdk17为例。

尹一冰的博客 2526

invalid target release 1.8

maven打包报错:invalid target release 1.8。 解决方法:将JAVA_HOME从jdk1.7改成jdk1.8。

qq_36692473的博客 1131

Maven构建失败排查指南:从依赖冲突到环境配置的全面解析

Java项目构建中,依赖管理和构建工具是核心技术基础。Maven作为主流的项目管理和构建自动化工具,其核心原理是通过坐标机制管理依赖,并基于生命周期模型执行插件目标。理解Maven的依赖解析机制和插件执行流程,对于保障项目构建的稳定性和可重复性具有重要技术价值。在实际开发场景中,依赖冲突、网络仓库问题和环境配置差异是导致构建失败的常见原因,这些问题直接影响开发效率和团队协作。本文聚焦于Maven构建过程中常见的“Failed to execute goal”错误,系统分析其背后的依赖冲突和插件执行问题,提

weixin_30565327的博客 319

Linux下手动部署Maven:版本自由、配置独立与高效构建环境搭建指南

Java项目构建与依赖管理中,Maven作为核心工具,其环境配置的灵活性与可控性直接影响开发效率。通过手动部署而非依赖系统包管理器,开发者可以实现版本隔离与自由切换,满足不同项目对构建工具版本的差异化需求。这种部署方式遵循最小权限原则,所有操作均在用户目录下完成,确保了系统的安全与整洁。在持续集成与多环境协作场景下,手动配置的Maven环境支持自定义本地仓库路径、镜像加速与代理设置,能显著提升依赖下载速度与构建稳定性。本文聚焦于Linux环境下Maven的手动安装、深度配置与故障排查,通过详解环境变量设置

weixin_34280237的博客 362

Maven安装配置核心原理与阿里云镜像源精准配置指南

MavenJava生态中基于POM声明的依赖管理与构建自动化工具,其本质是通过坐标系统(groupId/artifactId/version)实现可复现的依赖解析。核心原理在于三层配置体系(全局/用户/项目)的叠加生效机制与镜像路由策略,技术价值体现在构建确定性、团队协作一致性及企业级依赖治理能力。典型应用场景包括Spring Boot项目初始化、多模块微服务构建、CI/CD流水线标准化以及私有仓库(如Nexus)集成。本文聚焦Maven安装配置中的关键断点:MAVEN_HOME环境变量的必要性、sett

weixin_33922672的博客 317

JDK25环境配置本质是运行时契约重建

Java开发环境配置已从简单的路径设置演进为构建可验证的JVM运行时契约。JDK25通过模块化(jmods)、精简镜像(jlink)、ZGC默认启用及字节码版本升级(69)等机制,重构了JAVA_HOME语义、PATH作用域和编译-运行分离模型。其技术价值在于提升启动性能、降低资源占用并强化版本一致性,广泛应用于Spring Boot 3.4微服务、Flink流处理及容器化部署场景。本文聚焦JDK25配置中JAVA_HOME与jlink镜像解耦、MAVEN_OPTS强制对齐、ZGC预热控制等核心实践,揭示传

weixin_30838873的博客 312

SSM框架整合实战:构建企业级JavaWeb应用

SSM框架(SpringMVC+Spring+MyBatis)是JavaWeb开发的主流技术栈组合,通过MVC分层架构实现业务逻辑与表现层的解耦。其核心原理基于Spring的IoC容器管理组件依赖,MyBatis的ORM映射处理数据持久化,配合SpringMVC的请求分发机制构建完整Web体系。该技术组合在电商系统、ERP等企业级应用中具有显著优势,支持高并发事务处理与复杂业务场景。本文以MySQL/Oracle双数据库支持为例,详解SSM框架整合过程中的动态数据源配置、MyBatis二级缓存优化等工程实践

aibi9196的博客 442

SpringBoot项目Docker容器化实战:从裸机部署到生产级交付

SpringBoot作为主流Java微服务框架,其部署稳定性与环境一致性长期受JDK版本冲突、配置泄露、端口争用等基础问题困扰。Docker容器化通过镜像封装运行时环境(如openjdk:17-jdk-slim)、声明式配置注入和标准化健康检查,将部署从人工运维操作升维为可复现、可审计的交付范式。它不仅解决SpringBoot在多环境下的启动失败、日志分散、回滚低效等典型痛点,更支撑CI/CD流水线、PVE虚拟化平台及Kubernetes集群的统一调度。本文聚焦真实生产场景,详解多阶段构建、非root安全运

fanjava 334

Ubuntu 20.04 Java环境配置避坑指南:JDK安装、JAVA_HOME与多版本管理

Java开发环境是软件构建的基础支撑,其核心在于JDK(Java Development Kit)的正确安装与环境变量配置。在Linux发行版中,Ubuntu 20.04采用基于Debian的apt包管理机制,但其Java包命名体系(如openjdk-11-jdk-headless)和工具链拆分策略(javac被剥离至-headless子包)与开发者实际需求存在显著错位。这导致常见问题如java -version正常但javac command not found、Maven编译报source releas

weixin_34112181的博客 404

Ubuntu 16.04 上 Jenkins Pipeline 稳定实践指南

Jenkins Pipeline 是基于 Groovy 的声明式持续集成流水线引擎,其核心价值在于将构建、测试、部署等环节显式编码化,实现环境可复现、过程可审计、失败可追溯。在工业嵌入式、边缘网关等存量系统中,Ubuntu 16.04 因内核稳定(4.4)、glibc 2.23 兼容性强,仍是关键基础设施底座;而 Jenkins Pipeline 在该平台的落地难点,集中于 JVM 版本约束(需 OpenJDK 8 + Groovy 2.5+)、Docker-in-Docker 兼适配(依赖 Docker

weixin_30338481的博客 474

JDK26安装与环境配置实战:绕过镜像陷阱、校验失效与IDE集成坑

Java开发环境配置是Java程序员的基础能力,其核心在于JDK安装、环境变量设置与工具链协同。理解JVM启动机制、PATH与JAVA_HOME加载顺序、Shell初始化文件差异等原理,可避免90%的编译失败和版本错配问题。技术价值体现在提升构建稳定性、保障CI/CD流水线一致性,并支撑ZGC、虚拟线程等新特性落地。典型应用场景包括Spring Boot微服务升级、GraalVM原生镜像构建及金融级合规部署。本文聚焦JDK26这一关键版本,深入解析下载校验异常、Windows权限路径冲突、Linux/mac

weixin_34168880的博客 397

Java从零到入门:30小时实战指南与核心技巧

Java作为企业级开发的主流语言,其'一次编写,到处运行'的特性使其在金融、电商等领域广泛应用。理解Java核心语法、面向对象编程和JVM内存管理是掌握这门语言的基础。通过实战项目如天气查询系统的开发,可以快速应用集合框架、多线程并发等关键技术。针对新手常见误区,如字符串拼接性能问题和异常处理原则,提供了优化方案。从环境配置到现代Java特性,本指南覆盖了Java开发全流程的关键知识点,帮助开发者在30小时内建立完整的知识体系。

weixin_30727835的博客 471

Win11 Java开发必配JDK8与JDK17双版本实战指南

Java多版本共存是企业级开发的基础能力,源于JVM规范演进带来的二进制不兼容性——JDK8(class文件版本52)与JDK17(版本61)之间存在类加载、模块系统、API移除等结构性断层。这种不兼容并非简单升级问题,而是由Java 9模块化(JPMS)、JDK17移除javax.xml.bind等关键变更所驱动的技术现实。其核心价值在于支撑混合技术栈:老系统依赖JDK8的稳定生态,新模块需JDK17的ZGC、密封类等现代特性。典型应用场景包括Spring Boot 2.x(需JDK8)与3.x(需JDK

weixin_34161032的博客 310

Ubuntu 16.04 上稳定运行 GitLab CI Pipeline 的工程实践

持续集成(CI)是现代软件交付的核心能力,其本质是通过自动化流程保障代码质量与发布可靠性。GitLab CI 作为主流开源 CI 工具,依赖 runner 执行器、Docker 容器化隔离和 .gitlab-ci.yml 声明式编排三大技术支柱。在老旧但仍在工业控制、政务边缘、教育实验等场景广泛服役的 Ubuntu 16.04 系统上,因内核(4.4.x)、glibc(2.23)及官方 EOL 状态限制,直接套用新版方案极易引发依赖冲突、证书失效、Docker 兼容性失败等问题。本文聚焦真实生产约束下的可行

agtvo48266的专栏 415
上一篇: 在CentOS7上安装Redis,并使用脚本运行Redis
下一篇: ssh_exchange_identification: read: Connection reset
ybqdren
博客等级 码龄8年 63粉丝 · 105原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值