记录一次删除.jenkins目录的修复过程(完整离线部署Jenkins 2.346.1含兼容插件包)

文章目录


一、前言

本次过程将分享Linux完整离线部署Jenkins 2.346.1的过程,以及Ant的安装、插件的安装、项目的配置~

一台Linux系统(装有jdk1.7或jdk1.8)+能访问网络的电脑

二、背景

最近在开发一个新项目,需要新建一个项目来构建,一系列配置后,构建发现报错了,貌似是找不到什么路径。

由于当时不太了解Jenkins,也没有啥防备心理,看到有个Local module directory配置是点(就是.),然后就改成了.../.../,也算是脑子发热了,就保存构建了,结果整个.jenkins目录都被删除/重置干净了~(此应该是Jenkins使用SVN时,会先清除目录,再更新数据)

这下好了,Jenkins彻底崩盘了~

页面乱了不说,视图、项目也不见了,新建一个时,由于没插件了,编辑页都是残缺的...

三、介绍

Jenkins是一个开源的自动化部署工具,它能够持续地自动化构建、测试和部署软件项目。Jenkins通常用于构建、测试和部署Web应用程序,但也可以用于构建和测试其他类型的软件。

Jenkins提供了一个可扩展的插件系统,使得它可以轻松地与其他工具和技术集成。它支持各种版本控制系统(如Git、SVN等)、构建工具(如Maven、Gradle等)以及测试框架(如JUnit、Selenium等)。通过使用这些插件,Jenkins能够自动执行构建、测试和部署操作,并提供详细的报告和日志信息,方便开发人员跟踪和分析项目的状态和问题。

Jenkins还具有强大的可配置性和灵活性,使得它能够满足各种不同的需求和工作流程。它可以在本地计算机、服务器、Docker容器等各种环境中运行,也可以在云端进行部署和管理。

四、过程

经翻阅各种资料,询问各个AI,有说找个国内平替,有说安装个最新版。由于环境限制,查看了官网介绍,最终选择了安装对现有环境要求兼容性最好的Jenkins 2.346.1。
官网地址:https://www.jenkins.io/

文档地址 -(如果您安装不受支持的 Java 版本,您的 Jenkins 控制器将无法运行。)

由此,可以看到,Jenkins 2.346.1是Jenkins LTS(长期支持版)的一个版本,发布于2022年6月28日,是支持Java 8的最后一个版本。后续版本(如2.346.3及更高)已移除对Java 8的支持 。

选择LTS版是因为官网说基础版更新比较频繁,而LTS更新频率低、稳定性高‌,适合需要长期稳定运行的场景。

官网下载页:https://www.jenkins.io/download/ --选择Stable (LTS) ,Past Releases。

1、文件下载

LTS更多版本:https://get.jenkins.io/war-stable/ --Ctrl+F查找并选择2.346.1。
LTS的2.346.1版本:https://get.jenkins.io/war-stable/2.346.1/
LTS的2.346.1版本:https://mirror.twds.com.tw/jenkins/war-stable/2.346.1/jenkins.war

附:网盘下载:https://pan.baidu.com/s/5eVfiR3O0aDU43mVE72rYkA

附:华为镜像下载:https://mirrors.huaweicloud.com/jenkins/war-stable/2.346.1/jenkins.war --注意是war-stable

2、下载和安装Tomcat

运行Jenkins主要有三种常见方式:‌WAR包启动‌、‌Docker启动‌和‌Tomcat启动‌。

以下是做简单说明:

  • WAR包启动

    下载Jenkins的WAR包,执行命令:java -jar jenkins.war(需提前安装Java环境)

    访问http://localhost:8080 查看管理页面

  • Docker启动

    拉取Jenkins镜像:docker pull jenkins/jenkins

    运行容器:docker run -p 8080:8080 jenkins/jenkins

    通过http://localhost:8080访问

  • Tomcat启动

    将WAR包复制到Tomcat的webapps目录

    修改server.xml配置端口号(默认8080)

    启动Tomcat后访问http://localhost:8080/jenkins

可参考 Jenkins的三种启动方式

个人是建议用容器启动的,因为有容器可控制其端口号,启动参数,以及运行日志,还有方便启停。所以这里使用Tomcat配置Jenkins。

Tomcat官网:https://tomcat.apache.org/

官网推荐下载Tomcat9.x+,其zip下载:https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.112/bin/apache-tomcat-9.0.112.zip

将其移动并解压到Linux服务器,例如:/data/tomcat_jenkins/

修改tomcat_jenkins/conf/server.xml文件,其中:

xml 复制代码
<Server port="8007" shutdown="SHUTDOWN">
<!--...-->
	<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
           connectionTimeout="60000"
           redirectPort="7443" 
		   URIEncoding="UTF-8"/>
<!--...-->
	<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
<!--...-->

3、部署Jenkins并启动

将对应版本的 jenkins.jar 复制到 tomcat_jenkins/webapps/ 下面,然后进入bin目录执行start.sh启动Tomcat。

shell 复制代码
cd tomcat_jenkins/webapps/
cp xx/jenkins.jar ./
cd ../bin/
chmod +x *.sh
sh start.sh # sh restart.sh 

使用restart.sh的,请访问 快捷重启Tomcat的部署命令sh文件restart.sh-超好用超实用

启动后,在浏览器访问 ip:8081/jenkins,例如:http://192.168.10.111:8081/jenkins

这里可能会触发初次加载token校验,以及插件选择。token校验按文字做即可,插件选择建议跳过。

4、插件安装

我这里是经过AI提醒,可以选择离线安装:

  • 离线/内网场景
    在有外网的同版本环境中先下载所需插件(或导出已安装插件目录),再拷贝到内网 Jenkins 的 JENKINS_HOME/plugins,重启即可使用;
    或准备离线包(war/plugins/凭证配置等),在内网直接恢复,避免外网请求

由于外网限制(翻墙),版本兼容性,失效镜像,还有插件校验...

在此我已试过官方安装,镜像安装,本地安装,都未成功~

而且插件依赖插件,一手拉一手,已经近百个插件需要安装...

使用"离线插件包集合"(别人整理好的兼容包,一键上传)

有人已经为 Jenkins 2.346.1 或类似老版本整理好了一整套"兼容的插件包"(.hpi 文件集合),你只需要下载并上传这些包,就能让大部分常用插件正常工作,无需自己一个个找版本

故使用上述离线安装方法,搜索"Jenkins2.346.1兼容插件包",发现网络上果然有相关plugins下载,哈哈哈~

在这提供几个下载,实测有效,仅限 Jenkins 2.346.1~

原:Jenkins 2.346.1插件 5星 214.28MB
我的博客:Jenkins 2.346.1插件
附:网盘下载:https://pan.baidu.com/s/5eVfiR3O0aDU43mVE72rYkA

将plugins解压到Jenkins默认工作空间,一般是$user/.jenkins/,放在其plugins目录下:

shell 复制代码
cd $user/.jenkins/plugins/ 
cp xxx/plugins.zip ./
unzip plugins.zip

重启Jenkins所在Tomcat即可。

插件安装理念:了解Jenkins发布年限(例如2022年),安装兼容插件时选择该年限以前的最新版(例如2021年12月)发布的插件。

插件安装理念:了解Jenkins发布年限(例如2022年),安装兼容插件时选择该年限以前的最新版(例如2021年12月)发布的插件。

插件安装理念:了解Jenkins发布年限(例如2022年),安装兼容插件时选择该年限以前的最新版(例如2021年12月)发布的插件。

5、汉化

汉化主要是指Jenkins的HTML页面进行汉化处理。该功能主要通过插件来实现,由localization-support和localization-zh-cn,已包含在插件包中。

6、配置环境变量

shell 复制代码
vim /etc/profile

# Java 环境变量(如果尚未配置)
export JAVA_HOME=/data/jvm/jdk1.8.222  # 请根据你的 JDK 路径修改
# Maven 环境变量
export MAVEN_HOME=/data/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH
# Ant 环境变量
export ANT_HOME=/data/apache-ant-1.10.12
export PATH=$ANT_HOME/bin:$PATH
# (可选)Jenkins 数据目录(通常不需要加入 PATH)
export JENKINS_HOME=/var/lib/jenkins  # 默认路径,根据你的实际 Jenkins 数据目录修改

source /etc/profile
  • $PATH=$MAVEN_HOME/bin:$ANT_HOME/bin:$PATH 的作用是将 Maven 和 Ant 的可执行文件目录加入到系统的 PATH 中,这样你就可以在任意目录下直接运行 mvn和 ant命令。
  • JENKINS_HOME通常只是告诉 Jenkins 或系统"数据存放在哪里",它本身不是一个可执行程序,所以一般不需要加到 PATH 中。

7、安装Maven

使用Jenkins构建Maven项目时,需要依赖Maven系统插件,故需要在系统中安装Maven,步骤和ant很类似,这里略过~

官网:https://maven.apache.org/
官网下载地址:https://maven.apache.org/download.cgi

8、安装Ant

使用Jenkins构建一般java项目时,比如copy了jsp文件,将.java通过javac编译成.class文件,zip到升级包等,需要安装ant系统插件。

官网:https://ant.apache.org/
官网下载地址:https://ant.apache.org/bindownload.cgi

网盘下载:https://pan.baidu.com/s/5rXvGRnFSZblakC9MMvI39w

华为镜像 Ant1.9下载 apache-ant-1.9.16-bin.tar.gz

Apache Ant 是一个用 Java​ 编写的命令行构建工具与库,以构建文件中的 target​ 与 task​ 组织流程,常用于 Java 应用的编译、测试、打包与部署,也可驱动非 Java 任务(如 C/C++)。Ant 不强制项目目录规范,可通过编写自定义任务或引入 antlibs​ 扩展能力;与 Apache Ivy​ 搭配可实现依赖管理。Ant 是 Apache 软件基金会项目

值得注意的是,由于Apache Ant 本身就是用 Java​ 编写的,所以如果你要构建jdk1.7的项目,或者说你的线上运行环境是jdk1.7的,需要下载ant1.9.x版本才行,否则会报错,这里下载的是apache-ant-1.9.16-bin.tar.gz版本~

  • 版本线对比(运行时 JDK 要求):
    1.10.x:要求 Java 8 及以上,支持到当前最新的 Java 22;且 1.9.x 系列已 EOL,官方建议使用 1.10.x。
    1.9.x:要求 Java 5 及以上(已 EOL)。
    1.8.x:要求 Java 1.4 及以上。
    1.7.x:要求 Java 1.3 及以上。

还有,Linux一般不支持直接解压.gz,所以本地环境解压并压缩为.zip再上传~

下载后移动解压到服务器目录,例如:

shell 复制代码
cd /data/
mkdir ant
cd ant
unzip -oq xxx/apache-ant-1.xxx-bin.zip
chmod +x /ant/bin/ant # 这步不可少,赋予可执行权限~

看上文,配置ANT_HOME环境变量,执行ant -version命令进行校验,maven同理。

9、配置jkd、ant等系统插件

要为Jenkins指定构建中有哪些jdk,ant,maven等,所以需要做一些配置。

浏览器web访问http://xxx:8081/jenkins/configureTools/

自行本地安装的,所以不要勾选Install automatically哦!

包括【Maven 配置】、【JDK】、【Git】、【Gradle】、【Ant】、【Maven】等。

这里安装的SVN账号会在创建项目时添加~

10、项目配置(构建)

以上步骤都准备好后,重启一下Tomcat_jenkins,并刷新web端,然后新建【Freestyle project】,

示例图:

https://gitee.com/lvbee/jenkins-2.346.1

五,一些问题与链接分享

1、gitee分享

https://gitee.com/lvbee/jenkins-2.346.1/

2、Ant和jdk版本对不上时?

Ant和jdk版本对不上时,会报:

复制代码
Error occurred during initialization of VM
java.lang.UnsupportedClassVersionError: allow : Unsupported major.minor version 52.0

AI点醒你:你使用的 Ant 二进制版本(/home/howang/ant/bin/ant)本身是使用 Java 8 编译的!

即:你当前调用的 /data/ant/bin/ant,这个 Ant 本身可能是用 Java 8 或更高版本编译出来的,因此当你在 Java 7 上运行它时,JVM 启动过程中要加载 Ant 内部的某些类(比如 allow或其他核心类),但这些类是 Java 8 编译的(版本号 52.0),Java 7 不认识,于是崩溃。

由于Apache Ant 本身就是用 Java​ 编写的,所以如果你要构建jdk1.7的项目,或者说你的线上运行环境是jdk1.7的,需要下载ant1.9.x版本。

3、崩盘修复过程中遇到的问题

  • jenkins中,对svn的配置,Ignore externals 和 Cancel process on externals fail是什么意思?有什么作用?

    忽略外部引用 和 外部引用失败时取消构建过程

  • 如何设置同时构建的项目数量?

  • 插件检查签名怎么办?如何关闭?

    在Tomcat_jenkins的catalina.sh文件中,添加JAVA_OPTS=' -Dhudson.model.DownloadService.noSignatureCheck=true',其中空格和横杠是分割符,这段代码称为Tomcat 的启动环境变量配置。

    该功能禁用插件下载时的签名检查。⚠️ 注意安全风险:这意味着 Jenkins/Hudson 将允许安装未经签名的插件,可能存在安全漏洞。仅建议在测试或信任的环境中使用。

  • linux配置JENKINS_HOME的推荐配置

  • 如何将 GC(垃圾回收)的日志输出到指定文件?

    在Tomcat_jenkins的catalina.sh文件中,添加JAVA_OPTS='-Xloggc:/data/tomcat_xxx/gc.log'

  • 安装了插件后报错了,如何通过linux后台删除该插件?

    你 无法通过 Jenkins 的 Web 界面(GUI)管理插件(比如页面打不开或插件管理页报错);

    进入JENKINS_HOME/plugins/ 直接删除指定插件,然后重启tomcat

  • admin账号的密码在哪里改?

    请移步博文:https://blog.csdn.net/qq_26599807/article/details/155108615

  • 插件不兼容会怎么提示?

    xml 复制代码
    SCM API Plugin (696.v778d637b_a_762) Jenkins (2.426.3) or higher required

    插件之间有依赖链,逐个挑版本容易漏、容易冲突,希望有"批量适配"或"整体兼容"的方案

    使用"离线插件包集合"(别人整理好的兼容包,一键上传)

  • Jenkins构建项目时,如何指定jdk版本?

    最直接的办法是,使用java -version查看,并修改对应JAVA_HOME

    查看当前 JAVA_HOME的值:`echo JAVA_HOME`

六,结束

.


文章目录

相关推荐
h***34634 小时前
SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)
spring boot·tomcat·mybatis
o***592716 小时前
解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
java·tomcat·intellij-idea
毕设源码-钟学长18 小时前
【开题答辩全过程】以 浮生馆汉服租赁管理系统为例,包含答辩的问题和答案
android·java·tomcat
e***877020 小时前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
q***146421 小时前
JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)
java·tomcat
川石课堂软件测试1 天前
自动化过程中验证码的解决思路
数据库·python·功能测试·测试工具·单元测试·tomcat·自动化
liu_bees1 天前
Jenkins 中修改 admin 账号密码的正确位置与方法
java·运维·tomcat·jenkins
10km1 天前
java:Apache Commons Configuration2 占位符使用详解
java·apache·占位符·configuration2·commons·interpolator
w***4241 天前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins