【Jenkins】windows构建自动化部署demo

前言

Jenkins 工作中主要用在Linux 系统上。目前只是 自己本地开发玩玩CI/CD,所以先在windows上跑个demo。

主要思路

  • 新建spring boot demo 项目

    • spring boot 打包成可执行jar包需要maven插件支持,官网 initializr 会默认在pom.xml里面加入插件声明
  • 构建git环境,准备一个可push 的github仓库

    • fork一个别的的项目也可以,关键是代码仓支持本地push上去
  • 使用 maven 命令行构建、运行项目

    mvn clean install
    java -jar target/demo-0.0.1-SNAPSHOT.jar
    
  • 安装Jenkins

    • 参考官网
    • Jenkins 本质上是一个可运行的后台项目,一个war包,在windows 上运行会注册到service上。按官网步骤安装完成后,直接localhost 访问自己设定的口号即可
  • 使用Jenkins的功能

    • 拉取最新的代码
    • 以命令行的形式打包、运行程序

Jenkins 的简单使用

在这里插入图片描述

  • 建立一个任务

  • 配置git仓库
    在这里插入图片描述

  • 配置启动脚本
    在这里插入图片描述

export BUILD_ID=DONTKILLME
# 代码会默认拉到这个目录(区分于本地目录)
cd C:/ProgramData/Jenkins/.jenkins/workspace/TestDemo
mvn clean install
cd C:/ProgramData/Jenkins/.jenkins/workspace/TestDemo/target 
# 端口换成80,避免与本地工程冲突
nohup java -jar demo-0.0.1-SNAPSHOT.jar --server.port=80 &
  • 保存后即可构建

windows环境的瓶颈

shell脚本比bat脚本好用太多了,当我想要查出80端口占用的程序并且删掉,cmd中要用到findstr命令,但是它仅仅返回一行,不支持正则表达式的部分匹配。比如我只想返回PID,这个函数只返回了完整一行,对正则表达式的支持也不够好。

C:\WINDOWS\system32>netstat -ano |findstr "\<0.0.0.0:80\>"
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       18104

需要完成只提取18104作为输出,还要用到cmd的for命令,暂时没找到很通用的方案。Linux 的grep命令很快就能实现。

后记

浅浅认识自动化部署:Jenkins可以帮忙拉取远程仓库,保证代码是最新的。还可以定制启动脚本,让环境与本地隔离(本地有部分代码暂时不想push,那么这种隔离是很有意义的)。后续需要用Linux系统部署Jenkins,并完善整个自动化流程。包括github的hook配置,做到push代码后触发Jenkins自动构建。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值