Jenkins服务器安装及使用文档。
准备环境
Ubuntu 20.04.6 LTS、Linux 5.4.0-148-generic x86_64、jdk-jdk1.8.0_361、maven-3.9.3、git-2.25.1
1、下载Jenkins.war包,并放到随意位置(你自己定)
https://get.jenkins.io/war-stable/2.346.3/
2、将启动脚本jenkins.sh放入war包同一路径下
#!/bin/bash
AppName=jenkins.war
APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log
PORT=8081
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
rm -f $LOG_PATH
echo "$AppName exited."
else
echo "$AppName already stopped."
fi
nohup java -jar $AppName --httpPort="$PORT" --prefix=/jenkins > $LOG_PATH 2>&1 &
echo "Start $AppName success..."
3、运行启动脚本
./jenkins.sh start
4、输入jenkins的URL:IP:8081
5、查看jenkins启动日志,获取初始密码
6、安装推荐插件:因网络问题不一定所有插件都能下载成功,不成功直接点击重试,还是不行的话,先下一步,在设置里还可以下
7、创建管理员用户:什么都不用录入,直接点击使用admin账户继续
8、实例配置,也就是输入的URL,默认就行
9、密码修改
10、全局配置环境变量配置:这个一定要配置,踩大坑,找了三天的原因才找到问题
键:BUILD_ID
值:allow_to_run_as_daemon
接下来说原因:
因为我们使用Jenkins肯定是为了自动化构建和持续集成以及项目的***一键启动***,不加这个全局属性会导致你无法在后台启动项目,Jenkins会自动杀掉后台,你的“nohub java -jar your.jar &”语句会失效!!!
11、配置jdk、maven
系统管理->全局工具配置
Maven Settings:默S认就行
JDK:别名随意、JAVA_HOME——主机jdk安装路径
Git:Name随意、Path to Git executable:which git所输出的地址
Maven:Name随意、MAVEN_HOME:maven的安装地址
12、需手动下载插件:Maven Integration(用于创建maven任务)
13、任务构建
1)新建任务
任务名称自己定(合理就行),选择构建一个maven项目(第12步下载的插件就是为了这个),点击确定
2)丢弃旧的构建,如果不知道填什么就按照我的来
3)源码管理:就正常的git路径、Credentials是凭据(URL填写HTTPS时才用的到)、分支写自己所需配置分支有、其他默认
4)构建配置:clean package -Dmaven.test.skip=true
5)构建成功后执行、shell命令(因为我Jenkins在服务器本地,所以直接shell命令:会的话自己写,我这里写的很简单,启动脚本都在start.sh里)
6)保存,然后构建任务就行,下面贴上我的start.sh
#!/bin/bash
# ./start.sh start 启动 stop 停止 restart 重启 status 状态
AppName=zjtz-admin.jar
# JVM参数
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log
if [ "$1" = "" ];
then
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
exit 1
fi
function start()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "$AppName is running..."
else
if [ ! -d $APP_HOME/logs/ ];then
mkdir $APP_HOME/logs/
fi
nohup java $JVM_OPTS -jar $AppName > $LOG_PATH 2>&1 &
echo "Start $AppName success..."
fi
}
function stop()
{
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
rm -f $LOG_PATH
echo "$AppName exited."
else
echo "$AppName already stopped."
fi
}
function restart()
{
stop
sleep 2
start
}
function status()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
if [ $PID != 0 ];then
echo "$AppName is running..."
else
echo "$AppName is not running..."
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
esac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!