Jenkins单体项目构建

1.全局配置
1.1 Maven 配置

Manage Jenkins-> System Configuration -> Tools -> Maven配置

这里配置的是全局的settings文件路径;

1.2 JDK安装

Manage Jenkins-> System Configuration -> Tools -> JDK安装

点击JDK安装,进入安装安装界面

填入JDK的别名,JAVA_HOME(安装目录);

1.3 Git安装

Manage Jenkins-> System Configuration -> Tools -> Git installations

点击Add Git ,选择 Git ;

填入别名和 Git安装地址 ;

1.4 Maven安装

Manage Jenkins-> System Configuration -> Tools -> Maven 安装

点击Maven 安装进入安装界面;

点击新增Maven ,填入Name(别名)以及MAVEN_HOME(安装地址);

1.5 Credentials

Manage jenkins -> Security -> Credentials

点击 Add Credentials 进入新增页面;

类型 :Username with password #用户名和密码

范围: Global #全局的

用户名:拉取代码的用户名

密码:拉取代码的用户的密码

    创建成功;

1.6 配置SSH

Manage jenkins -> System-> Pushlish over SSH

Passphrase: 登录服务器的用户密码;

点击SSH Servers 下面的新增

Name: 别名;

Hostname: IP地址;

Username: 登录用户名称

Remote Directory: 远程服务器目录(jar包上传的地址)

2. 创建Job
2.1 新建Item

登录Jenkins, 点击左侧的 新建Item ;

任务名称:water_auto_deploy

模式:Freestyle project #自由模式

2.2 配置
2.2.1 General

描述:Job的作用;

JDK:根据项目的JDK版本选择,这里选择Java 8 #已全局工具中配置

2.2.2 源码管理

根据代码管理工具选择,这里选择Git(如果没有对应的版本管理工具,先去安装插件);

Repository URL:代码的远程地址(就是Git克隆的地址);

Credentials:拉取代码的用户名和密码配置而成的凭据;

指定分支:选择master分支

2.2.3 构建触发器

构建触发器就是选择一种触发构建的方式;

触发远程构建:通过手动在浏览器输入url,触发job进行构建。如果需要做成自动构建,这里地址就由Github或者Gitlab回调,触发构建;

回调地址: JENKINS_URL/job/jenkins_test/build?token=TOKEN_NAME

示例:http://localhost:8282/job/jenkins_test/build?token=test

2.2.4 构建步骤

点击增加构建步骤,选择 Invoke top-level Maven targets

Maven版本选择 3.8.1 ;

目标: clean install #先执行 清理,再执行 打包,和IDEA上的打包操作是一样的;

2.2.5 构建后操作

构建后的操作包括:jar包打包好之后,将jar包发送到哪个路径,以及如何启动等等;

这些操作需要提前在服务器上设置好路径,写好启动和停止的脚本,并设置成可执行的shell脚本。

       点击增加构建后操作步骤;

      选择 Send build artifacts over SSH,将构建好的jar发送到远程服务器;

Name : 配置好的SSH别名();

Source files: jar所在的相对路径 #路径从和 .mvn 、 .git文件同级开始

Remove prefix: 需要去掉的地址前缀

Remote directory: 远程仓库目录

#注意:这个目录会和Manage Jenkins->System->SSH Server中的Remote Directory这个目录拼接到一起;

假设Manage Jenkins->System->SSH Server中的Remote Directory配置是的/root ,那么最终的路径是 /root/water/jenk

Exec command: jar包上传之后需要执行的操作;

oper_water.sh脚本

#!/bin/bash

#端口
port=${1}
root_path=/root/water/jenk
boot_path=/usr/local/smart_water/dev
jar_name=boot-main-0.0.1-SNAPSHOT

#1.停止服务
#参数为空默认8383端口
if [ ! -n "${port}" ]; then
    port=8383
fi
echo "port=${port}"

pid=$(netstat -nlp | grep :${port} | awk '{print $7}' | awk -F"/" '{ print $1 }')
echo "pid=${pid}"

#不为空,杀掉进程
if [ -n "${pid}" ];then
    kill -9 ${pid}
    echo "停止服务!"
fi

echo "清理日志文件"
cd ${root_path}/
rm -rf log/ && mkdir log/
rm -rf system.log


#2.备份jar包(开发环境仅备份一次)
echo "备份jar包"
cd ${root_path}/
rm -rf ${jar_name}_bak.jar
cp ${jar_name}.jar ${jar_name}_bak.jar

#3.替换配置文件
echo "替换配置文件"
cd ${root_path}/
yml_path=$(jar -tvf ${jar_name}.jar |grep application-dev.yml |awk '{print $8}')
echo "yml_path=${yml_path}"
jar -xvf ${jar_name}.jar ${yml_path}
cp application-dev.yml ${yml_path}
jar -uvf ${jar_name}.jar ${yml_path}

log_path=$(jar -tvf ${jar_name}.jar |grep logback-spring.xml |awk '{print $8}')
echo "log_path=${log_path}"
jar -xvf ${jar_name}.jar ${log_path}
cp logback-spring.xml ${log_path}
jar -uvf ${jar_name}.jar ${log_path}

#4.启动服务
echo "启动服务...."
cd ${root_path}
source /etc/profile
nohup /usr/local/java/jdk1.8.0_381/bin/java -jar ./${jar_name}.jar > ./system.log 2>&1 &

3. 构建项目

手动构建项目的方式有两种,效果是一样的:

3.1 回调地址触发构建

        步骤2.2.3 构建的触发器,回调地址格式: JENKINS_URL/job/jenkins_test/build?token=TOKEN_NAME

        在浏览器输入回调地址触发:http://localhost:8282/job/jenkins_test/build?token=test

3.2 手动点击触发

        在job详细页面,点击Build Now,也可以触发构建;

        点击需要构建的jenkins_test ,进入详情界面

        点击Build Now,也可以构建项目,效果和使用浏览器回调地址是相同的。

3.3 回调地址示例
3.3.1 构建前

    这是job的初始状态(没有构建),构建历史是空的,工作空间也没有(构建后才会生成);

    构建之前的服务器目录/root/water/jenk,项目端口8383 也没有运行;

3.3.2 构建

  在浏览器输入回调地址:http://localhost:8282/job/jenkins_test/build?token=test

3.3.3 构建后

     构建历史中新增了1条记录,进入工作空间,可以看见打包好的jar包;

     点击构建历史 #1 进入构建详情界面,可以在控制台输出查看构建过程的详细信息;

    jar已经上传到远程服务器,并且已经启动,表示构建成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值