jenkins自动化构建Java项目

本文详细介绍如何在CentOS7环境下使用Docker安装配置Jenkins,实现Java项目的自动化构建流程。包括创建挂载目录、指定运行用户、安装及配置插件、设置SSH连接、创建Maven项目以及构建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jenkins自动化构建Java项目

基础环境

docker
centos7

第一步 安装jenkins

注意事项:
1.  创建 挂载目录,并指定端口
 mkdir /data/docker/jenkins
 2. 指定  运行用户 -u root 表明用root用户运行,否则默认为jenkins用户 	并获取解锁密码
docker run -d -p 8083:8080 -p 50001:50000 -e TZ="Asia/Shanghai" -v /data/docker/jenkins:/var/jenkins_home --name zzlJenkins  --privileged=true  -u root docker.io/jenkins/jenkins

 docker exec -it fad36498b662 /bin/bash
 cat /var/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述

	 5.  如果出现以下错误(如果没有,则跳过),则地址栏输入:以下地址 解决No such plugin: cloudbees-folder

http://IP:8083/restart
在这里插入图片描述
6. 安装默认插件
在这里插入图片描述

7. 修改默认更新地址(非必要,可选换成国内站点)
地址为: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

在这里插入图片描述

  1. 安装JKD、maven、gitHub、Publish Over SSH 插件
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第二步 设置 插件默认值 (gitee、Publish Over SSH)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参数说明

Passphrase:SSH的密码
使用用户名/密码登录时为用户名的密码,使用私钥登录时为私钥的密码。
Path to key:SSH私钥的文件路径
私钥文件的路径,可以是绝对路径,也可以是相对$JENKINS_HOME的相对路径
Key:私钥
私钥导出后的文本内容
如果“Key”和“Path to key”都设置,则“Key”的优先级较高,私钥的密码是“Passphrase”中设置的内容。

Disable exec:禁止在目标机上执行命令
勾选后将会忽略在Job配置中“Exec command”选项中设置的命令。Jenkins的说明文档中的“The Disable exec in the advanced settings for individual configurations will be ignored.”没有完全理解,从实际效果来看,只要“Disable exec”被勾选后,不管SSH Server中是否勾选“Disable exec”,Job中设置的命令都将补忽略。
SSH Servers
SSH Server配置为Publish Over SSH中运程机的配置,分“基本设置”和“高级设置”两部分;“基本设置”主要是运程机IP、SSH用户名、SSH端口、连接超时时间等,“高级设置”和大部分“全局设置”中的选项相同。Job中使用的每一个运程机都要在这里进行配置

Name
SSH节点配置的名称,在Job中使用Publish over SSH插件时,此名称将出现在“SSH Server”中“Name”的下拉列表中,如下图: [图片上传中…(image-fe9240-1523170131387-0)]
Hostname
通过SSH连接到的机器的主机名或IP
Username
SSH服务使用的用户名,使用key进行连接时为key指定的用户名
Remote Derictory
运程机器上真实存在的目录,并且“Username”指定的用户要有访问此目录的权限,插件将把文件传送到此目录下。
在这里插入图片描述
在这里插入图片描述

第三步. 创建一个项目

  1. 建立一个maven项目并命名。在这里插入图片描述
    在这里插入图片描述

  2. 配置

在这里插入图片描述

在这里插入图片描述
参数说明
Name
“系统管理>系统设置”设置的SSH Sverver的名字列表。
Source files
复制到运程机上的文件,运行表达式,如上图中的target/.jar,“/.jar”。
Remove prefix
文件复制时要过滤的目录,如上图中的target目录。
Remote directory
文件得到到远程机上的目录,此目录是相对于“SSH Server”中的“Remote directory”的,如果不存在将会自动创建。
Exec command
在这里可以填写在运程机器上执行的脚本,如:应用部署脚本


```cat deploy.sh 
#/bin/bash
echo 'begin'
export JAVA_HOME=/data/docker/jdk/jdk1.8.0_141
echo ${JAVA_HOME}

#项目部署环境
profileActive=prod
#服务名称
SERVER_NAME_PROVIDER=best-bpm-provider


#源JAR/WAR名称
JAR_NAME1=best-bpm-provider-0.0.1-SNAPSHOT.jar

#新建日志路径
mkdir -p /data/docker/work/log/${SERVER_NAME_PROVIDER}/

#停止服务
{
ps -ef | grep ${SERVER_NAME_PROVIDER} | grep -v grep| awk '{print $2}' | xargs kill -9
} || {
 echo '停止异常'
}

echo '开始'
rm -rf /data/docker/work/bak/${JAR_NAME1}

#备份
cp  /data/docker/work/${JAR_NAME1} /data/docker/work/bak/${JAR_NAME1}

#删除旧项目
rm -rf /data/docker/work/${JAR_NAME1}

echo '复制jar'
#复制JAR包到指定路径
cp /data/docker/jenkins/workspace/bpm-parent/best-bpm-provider/target/${JAR_NAME1} /data/docker/work

echo ‘chomd’
#授权
chmod 755 /data/docker/work/${JAR_NAME1}

#启动
cd /data/docker/work

echo '启动 provider start'
echo '------start-----'
 {
 nohup ${JAVA_HOME}/bin/java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -Dspring.profiles.active=${profileActive} -jar  ${JAR_NAME1}  > /data/docker/work/log/${SERVER_NAME_PROVIDER}/`date +%Y-%m-%d`.log 2>&1 &
 }||{echo '启动 provider 异常'}
echo '启动 provider end' 

echo 'success'

第四部 点击构建

点击自动构建。
在这里插入图片描述
在这里插入图片描述

第五步 修改maven 私有仓库(可选)

一般路径如下:

/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven3.6/conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中思絮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值