新版本Jenkins(Version>2.357)兼容低版本JAVA项目部署

Jenkins环境搭建文档(Java环境安装配置) Java环境安装 由于许多工具配套支持的jdk版本为1.8版本,所以尽量选择jdk1.8版本使用。 1.下载jdk Java Downloads | Oraclehttps://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 选择对应系统版本匹配的JDK,点击右边的下载。 在弹出的窗口中勾选同意用户协议,并点击下载,若没有登录则会弹出登录界面,注册一个账号进行下载即可。 JDK下载完成后,直接双击运.. 阅读详情
AI摘要

本文描述了一个在Jenkins2.414.3环境中使用MavenProject类型项目遇到的错误,因JenkinsLauncher使用了Java11编译,导致JDK8项目无法正常构建。解决方法是切换到FreeStyle项目并直接调用Maven命令。

环境信息

 Jenkins版本:Version 2.414.3

Agent版本:jenkins/inbound-agent(使用的是Kubernetes集群来提供Agent的方式,所以使用的是镜像)

https://hub.docker.com/r/jenkins/inbound-agent

此Agent是替换旧版本的jnlp-slave,已不再维护,官方推荐使用inbound-agent

 现象

部署Maven Project类型的项目出现如下报错。

Maven项目配置如下。项目使用JDK 8进行构建

报错信息

Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:425)
	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
	at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:136)
	at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:66)
ERROR: Failed to parse POMs
java.io.EOFException: unexpected stream termination
	at hudson.remoting.ChannelBuilder.negotiate(ChannelBuilder.java:459)
	at hudson.remoting.ChannelBuilder.build(ChannelBuilder.java:404)
	at hudson.slaves.Channels.forProcess(Channels.java:121)
	at hudson.maven.AbstractMavenProcessFactory.newProcess(AbstractMavenProcessFactory.java:298)
	at hudson.maven.ProcessCache.get(ProcessCache.java:237)
	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:802)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
	at hudson.model.Run.execute(Run.java:1900)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
	at hudson.model.ResourceController.execute(ResourceController.java:101)
	at hudson.model.Executor.run(Executor.java:442)

报错解读

使用了JDK8启动了jenkins job。但是jenkins Launcher是11编译的。

我们的版本是Version 2.414.3,确实是需要Java11才能启动Jenkins项目。

Jenkins服务器

查看Jenkins版本记录,大于2.357版本的Jenkins要求的JAVA运行时就是11了。

Jenkins requires Java 11 or newer

问题原因 

Maven Integration | Jenkins plugin

因为是Maven Project项目,所以使用Maven Integration插件。

查看插件说明,新版本Jenkins,新版本的Maven Integration不支持JDK8了,最低只支持JDK11。

那我要编译jdk11以下的项目,比如jdk8,jdk7之类的项目,该如何做呢。

使用低版本的JDK运行项目,还会报如下错误。Jenkins若发现了低版本的JDK运行,会自动给你重试。

ERROR: ================================================================================
ERROR: Invalid project setup: hudson/maven/AbstractMavenProcessFactory$ConfigureOriginalJDK : Unsupported major.minor version 51.0
ERROR: [JENKINS-18403][JENKINS-28294] JDK 'j6' not supported to run Maven projects.
ERROR: Maven projects have to be launched with a Java version greater or equal to the minimum version required by the controller.
ERROR: Use the Maven JDK Toolchains (plugin) to build your maven project with an older JDK.
ERROR: Retrying with agent Java and setting compile/test properties to point to /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/.
ERROR: ================================================================================

但是,到了高版本的Jenkins+高版本的Agent(inbound-agent),人家不给你重试了。直接中断了。这时候就需要选择其它方案。

这边明确说明。Jenkins requires Java 11 or newer

Controller(Jenkins Master)jdk若是11(高版本的Jenkins满足)

Agent是jdk8,则会报如下错误。

解决方案

不使用这个插件了,直接创建FreeStyle类型的项目,再调用Maven命令编译打包就行了。

将原有的项目

Maven Project类型的项目,更换为FreeStyle类型的项目,重新配置一遍就行

再调用maven step进行构建即可

Jenkins自动化部署Maven项目 本文详细介绍了使用Jenkins自动化部署Maven项目的完整流程。主要内容包括:环境准备(JDK、Maven、Docker)、Jenkins插件安装(Gitee、Maven、Docker等)、Gitee代码仓库连接配置、Maven项目创建与Git源码管理设置,以及关键的Docker构建部署步骤(包含镜像构建、容器启动等shell脚本)。文章还提供了高级Pipeline方案和常见问题解决方案,如权限配置、镜像版本管理和敏感信息保护,并建议后续可集成Kubernetes、SonarQube等技术扩展功能。 阅读详情

相关推荐

Java+Jenkins实现自动化打包部署流程

Jenkins 是一个开源的自动化服务器,可以用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持多种插件,使其能够与几乎所有流行的软件工具集成,如 Git、Subversion、Maven、Ant、Docker 等。自动化构建和测试:Jenkins 可以自动执行构建和测试过程,帮助开发者快速发现代码中的错误。持续集成(CI):Jenkins 支持持续集成,即频繁地将代码变更集成到主分支中,确保代码的稳定性。持续部署(CD)

qq_36070104的博客 2219

java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0

java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0) 在项目的属性里设置jdk版本,方法是右击项目–>properties–>java compiler --> Enable project specific settings -->将compiler compliance level设置为1.8,也就是与jvm一致的版本 ...

m0_67392182的博客 9587

Jenkins+Maven+Git自动化部署实战:从零搭建Spring Boot项目CI/CD流水线

自动化部署是CI/CD(持续集成/持续部署)的核心实践,旨在通过自动化工具链替代传统手动部署流程,解决环境不一致、部署风险高和回滚困难等痛点。其基本原理是通过版本控制系统(如Git)触发自动化服务器(如Jenkins),调用构建工具(如Maven)完成代码编译、测试和打包,最终将构建产物自动发布到目标环境。这一技术价值在于显著提升软件交付效率、保障部署过程的一致性和可追溯性,广泛应用于敏捷开发、微服务架构和云原生场景。本文聚焦于Jenkins、Maven和Git三大核心组件的整合,提供一套从环境安装、全局配

weixin_30580341的博客 402

Jenkins 添加节点Node报错JNI error has occurred UnsupportedClassVersionError

从文字上看第一个错误类型是属于不支持的字节码版本,那就想到当前jenkins默认是用的java 11版本,而目标节点机器上用的java 8,字节码版本不兼容,我试过把这个jenkins的jdk改为11,不行,启动报错,那就只好改目标机器上的java版本了,于是在目标节点机器下载了java 11并把版本选择设置默认为11版本,然后重新laugh Node后节点上线成功。节点日志 报错信息如下。更换java默认版本。

HumorChen的博客 2870

Jenkins+Maven+Git自动化部署实战:从零搭建Java项目CI/CD流水线

持续集成与持续部署(CI/CD)是现代软件工程的核心实践,旨在通过自动化流程提升软件交付效率与质量。其核心原理在于将代码提交、构建、测试、部署等环节串联为标准化流水线,减少人工干预带来的错误与延迟。对于Java技术栈而言,Maven作为标准的项目构建与依赖管理工具,与版本控制系统Git及自动化服务器Jenkins的结合,构成了实现CI/CD的经典技术方案。该方案的技术价值在于将重复的部署工作自动化、标准化,使开发者能更专注于代码本身,同时确保多环境部署的一致性。典型的应用场景包括需要频繁迭代的Spring

aome1470的博客 602

【异常】has been compiled by a more recent version of the Java Runtime (class file version 55.0)

摘要 项目运行时出现UnsupportedClassVersionError错误,原因是使用Java 11编译的代码尝试在Java 8环境下运行(版本不兼容)。解决方案为:1. 将jar包移至Java 11安装目录;2. 使用JDK 11运行程序,问题解决。该问题涉及JDK版本匹配,需确保编译与运行环境一致。

奶爸的编程之路,也就一周冷个三天 5万+

项目实战-jenkins代码发布全流程

通过Jenkins实现基于Git标签(TAG)的自动化部署方案。以china和java_hello两个项目为例,详细展示了从构建任务创建到自动化部署的全流程。关键步骤包括:1) 配置Jenkins构建任务与GitLab仓库关联;2) 编写包含编译、打包、分发、部署和清理功能的Shell脚本;3) 设置参数化构建支持按标签版本部署;4) 通过Webhook实现代码提交自动触发构建;5) 演示了版本升级(v0.1→v0.2→v0.3)和回滚(v0.2→v0.1)的操作过程。该方案支持多服务器部署,适用

日常分享linux运维知识 1448

【Jenkins】win 10 / win 11:Jenkins 的下载、安装、部署(Jenkins 2.365 基于 Java 17)

Jenkins 当前最新版本安装教程:Jenkins 2.365需指定 JDK 版本为 Java 11 或 Java 17,从全局测试环境部署来看,推荐 JDK 安装版本为 Java 17,Jenkins 最新版本安装需提供服务登录凭证。

顾三殇 —— 博客空间(软件测试) 7055

使用Jenkins部署K8s项目

说明 Continuous Integration(CI)和持续交付Continuous Delivery(CD)在项目中也算是比较重要的一部分,在我进行项目容器化的过程中,发现不断的自己去手工操作kubectl实在是太麻烦了,也不容易形成记录,在查找了一下资料后,选用了Jenkins进行CI/CD,下面通过一个具体的实例来记录我使用Jenkins的过程,有问题欢迎讨论( ̄ェ ̄;)。我的K8s是单Master多worker,多Master的话可能有不一样的地方,请酌情查看。 快速开始 Jenkins的

芸灵fly的博客 2973

Jenkins 2.346.1 插件兼容性实战:安装升级、开发与踩坑指南

在持续集成工具链日常运维中,插件与核心版本的兼容性往往是稳定性建设的隐形基石。任何插件在编译和运行两个阶段都必须满足版本对齐原则,一旦插件依赖的最低核心版本高于当前实例,轻则功能异常,重则引发 NoSuchMethodError 等运行期故障。针对长期停留在 Java 8 环境的存量业务,Jenkins 2.346.1 作为支持 JDK 8 的最后长期支持窗口,同时引入 Servlet 4.0 容器基线,对旧插件兼容性和新插件依赖解析构成双重考验。通过 Maven 插件骨架锁定 jenkins.versio

weixin_33462927的博客 217

共享最近邻相似度

共享最近邻相似度 第三十四次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。本文作为基于图的聚类的第二部分,主要针对“共享最近邻相似度(Shared Nearest Neighbour)”以及使用该度量的“Jarvis-Patrick聚类”进行介绍。其他基于图的聚类算法的链接可以在这篇综述《基于图的聚类算法综述(基于图的聚类算法开篇)》的结尾找到。 S...

Ἥλιος 7606

Linux安装Jenkins,Jenkins自动化部署Maven,Vue项目

Jenkins自动化部署Maven ,Vue项目

qq_43372633的博客 1138

保姆级教程:用OpenCV搞定鱼眼双目相机的标定与测距(附完整C++代码)

本文详细介绍了使用OpenCV进行鱼眼双目相机标定与测距的全流程,包括环境搭建、数据采集、单目标定、双目标定、立体校正和视差计算等核心步骤。通过完整的C++代码示例和参数调优指南,帮助开发者快速实现高精度的双目测距系统,适用于机器人导航、VR全景拍摄等领域。

weixin_42573113的博客 387

【全栈之路】docker安装jenkins最新版本 2.204.2

使用镜像安装,记得不要选错,这个里面才是最新的,不然插件安装不上 docker pull jenkins/jenkins:lts 下载成功以后 执行安装步骤 docker run -p 28080:8080 -p 50000:50000 -d -v /Users/zhaohaiyuan/Downloads/docker/jenkins:/var/jenkins_home --nam...

千年板蓝根 1055

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

况老师话竞赛&blog 2196

Jenkins + Java + Maven + SHH 流水线一键部署

本文详细介绍了使用Jenkins实现Java项目的自动化部署流程。针对传统手动部署效率低、易出错的问题,通过Jenkins整合Maven和SSH,搭建了一套完整的CI/CD流水线。内容包括:环境准备(Ubuntu、JDK)、Jenkins安装配置、流水线创建、SSH远程部署设置等关键步骤。该方案实现了代码提交后自动编译打包、远程部署和重启服务的全流程自动化,显著提高了部署效率和可靠性。文章提供了详细的命令和配置示例,即使是新手也能快速上手,适用于中小型Java项目的轻量化部署需求。

tadexinnian的博客 189

ChatGPT充值,银行卡被拒绝,图文教程

ChatGPT充值,银行卡被拒绝

weixin_46713695的博客 2万+

Jenkins远程部署与部署Java项目

1.下载jenkins 下载地址:https://jenkins.io/ 启动jenkins方式有2种 1.1切换到jenkins.war包的存放目录 启动命令: java -jarjenkins.war 启动jenkins 访问: localhost:8080 就能进入jenkins管理页面 1.2把jenkins.war放到tomcat的w...

mingluo1的博客 691

28_Spring AI 干货笔记之 OpenAI 聊天功能

本文详细介绍了在Spring AI框架中集成OpenAI聊天模型的方法。内容涵盖API密钥配置、通过starter依赖启用自动配置、连接与模型参数的详细设置,并重点说明了运行时选项的动态覆盖机制。文章还深入讲解了多模态处理(图像与音频)、结构化输出、函数调用等高级功能,提供了示例控制器和手动配置指南,并讨论了与OpenAI兼容服务器的适配与推理模型思维链的获取。

在科技的浪潮中,我们寻找着创新的火种,在代码的海洋里,我们编织着智慧的网。腾飞开源,就是这样一个由技术精英汇聚而成的博客平台,我们致力于分享在Java、Python、IoT和人工智能等领域的最新研究成果和实战经验。 在腾飞开源的博客上,你会看到紧跟技术前 1655

【实战】小红书笔记爬虫终极指南:模拟滑动加载,抓取图文(2026最新版)

小红书作为国内最大的生活方式分享社区,每天产生海量的图文笔记。对于数据分析、市场调研、竞品分析等需求,爬取小红书公开笔记成为一项常见任务。然而,小红书的反爬机制日益升级——接口加密、动态Token、滑动验证、设备指纹……本文将深入剖析小红书Web端和App端的爬取技术,手把手教你用Python实现模拟滑动加载、自动抓取图文笔记的完整爬虫系统。全文包含大量代码、原理分析和排坑经验,适合有一定爬虫基础的读者进阶学习。目录前言一、小红书反爬机制概览二、环境准备2.1 Python环境2.2 浏览器驱动。

2201_76125261的博客 764

Jenkins-启动Found an incorrect Java version

项目场景: 采用本地部署的方式搭建了Jenkins平台 问题描述: 在启动Jenkins服务的时候出现异常,异常如下: # Jenkins启动 /etc/init.d/jenkins restart May 11 16:56:55 server jenkins[18307]: Found an incorrect Java version May 11 16:56:55 server jenkins[18307]: Java version found: May 11 16:56:55 server

悄悄接 1863

量化交易 米筐 案例:市值因子选股策略

案例:市值因子的选股策略 1.结果 获得超额收益 年化 49% 2. 从股票中选择市值小的股票 选定财务数据筛选 进行每日调仓(多因子选股调仓 周期频率会小一些) 3. 代码 估值有关指标 # 在沪深300股票中,选出市值比较小的10只股票 # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。 def init(context): # 沪深300组合 stocks = index_components('000300.XSHG') # 沪深3

廷益_飞鸟的博客 2311

Jenkins安装和部署

安装 一、ssh免密码登录 通过命令”ssh-keygen -t rsa“生成秘钥 [root@localhost /]# ssh-keygen -t rsa 在/root/.ssh/目录下会有这四个文件 authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts : 已知的主机公钥清单 把id_rsa.pub改成authorized_keys放到要被免密登

myStyle的博客 2664

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

day071-Jenkins通过docker部署代码-java和前端代码

本文介绍了Jenkins实现Docker化部署的完整流程。首先强调销售能力对技术人员的重要性,随后详细展示了Jenkins部署Java和后端项目的自动化过程,包括Docker环境配置、插件安装、任务创建、镜像构建与推送、容器部署等关键步骤。通过参数化构建和脚本自动化,实现了代码从开发到生产的全流程管理,涵盖Java项目(Tomcat镜像)和前端项目(Nginx镜像)两种典型场景的部署方案,为DevOps实践提供了可复用的技术方案。

我的梦想有多远,我就能走多远! 1158

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Ubuntu 20.04 部署 Jenkins 实战:Java 11 兼容性与 systemd 运行时避坑指南

Jenkins 是基于 Java 的持续集成服务,其稳定运行高度依赖底层操作系统环境与 JVM 版本匹配。在 Ubuntu 20.04 这一广泛使用的 LTS 发行版中,systemd 服务管理、OpenJDK 11 TLS 兼容性缺陷、APT 签名密钥更新等机制变化,构成了典型的部署技术断层。理解 Java 11+ 对 Jenkins 的强制要求,结合 Ubuntu 20.04 的内核(5.4)、默认 JDK 行为及 systemd-resolved DNS 策略,是规避 GPG 验证失败、启动异常与 G

adiking520110的博客 484
上一篇: 公司内网一键安装Docker(CentOS 7)
下一篇: Gitlab打Tag触发Jenkins构建打包镜像
Jeff Dauglas
博客等级 码龄14年 1176粉丝 11原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值