springboot高级功能(十二)使用jenkins持续化集成springboot

简介: springboot高级功能(十二)使用jenkins持续化集成springboot


1.安装

2.安装jdk

https://www.jianshu.com/p/f000e05f3512

3.安装maven

https://blog.csdn.net/qq_38270106/article/details/97764483

4.配置jdk与maven

image.png

image.pngimage.png

*_HOME与环境变量一致

5.其他配置

修改ssh配置

image.png

配置远程地址 也就是运行项目服务器

image.png

修改端口号

image.png

6.安装插件

安装Maven Integration,Publish Over SSH

image.png

image.png

7.新建运行空间

image.png

image.png

1处:为新建空间名称

2处:需要下载前文的maven插件

image.png

image.png

只保留3个jar包

开始填写配置

1:项目描述

2:项目的svn路径

image.png

3:svn账号密码

image.png

每次提交都部署

image.png

此处添加日志输出

image.png

1处:前面配置运行文件服务器的配置

2处:jenkins服务器本地发布jar包的路径 + jar包名称 可以填写 target/*.jar

3处:打包路径 可以填写 target

4处:ssh 发送jar包的路径

5处:ssh的命令

部署原理是 jenkin把代码拉到本地 然后打成jar包 到2位置处 然后在jar包发到服务器4的路径下 然后执行5处脚本

5处的命令

1. cd /usr/local/*
2. ./*.sh stop
3. ./*.sh start

脚本

#替换这里jar包的路径,其它代码无需更改
APP_NAME=/usr/local/jar/*.jar
#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh item.sh [start|stop|restart|status]"
    exit 1
}
#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
#启动方法
start(){
  is_exist
  if [ $? -eq 0 ]; then
    echo "${APP_NAME} is already running. pid=${pid}"
  else
    nohup  /usr/local/jdk/jdk1.8.0_231/bin/java -jar ${APP_NAME} > earlywarning.out 2>&1 &
    echo "
           ===============
            程序成功启动!
           ==============="    
  fi
}
#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
   echo "
         ==============
         程序成功关闭!
         =============="
  else
    echo "${APP_NAME} is not running"
  fi  
}
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
#重启
restart(){
  stop
  sleep 5
  start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

这里有个坑

这里需要填写jdk绝对路径

网上说的什么杀掉进程都不对

nohup  /usr/local/jdk/jdk1.8.0_231/bin/java -jar ${APP_NAME} > earlywarning.out 2>&1 &

image.png

根据以上填写就可以

image.png

在成功情况下才部署

踩过的坑 1:

Jenkins 启动一直显示 Jenkins正在启动,请稍后...

见:https://blog.csdn.net/heatdeath/article/details/79733611

需要你进入jenkins的工作目录,打开
hudson.model.UpdateCenter.xml
http://updates.jenkins-ci.org/update-center.json
改成
http://mirror.xmission.com/jenkins/updates/update-center.json

jenkins后台启动方式

见:https://www.jianshu.com/p/264803b1360d

nohup java -jar jenkins.war

Jenkins关闭和重启实现方式.

1. 关闭Jenkins
2. http://localhost:8080/jenkins/exit
3. 重启Jenkies
4. http://localhost:8080/jenkins/restart
5. 重新加载配置信息
6. http://localhost:8080/jenkins/reload

解决nohup: 忽略输入并把输出追加到"nohup.out"或者nohup: 忽略输入重定向错误到标准输出端

见:http://www.yayihouse.com/yayishuwu/chapter/1656

1. 执行nohup java -jar do_iptable.jar & 运行jar会提示:nohup: 忽略输入并把输出追加到"nohup.out"
2. 
3. 执行nohup java -jar do_iptable.jar >/dev/null  & 运行jar会提示:nohup: 忽略输入重定向错误到标准输出端
4. 
5. 修改运行方式为nohup java -jar do_iptable.jar >/dev/null 2>&1 &即可。

这里有个坑:当自定义start版本号不改变但是内容改变 jenkin不会从新拉取jar包

需要定时执行配置

image.png


相关文章
|
5天前
|
监控 Java Nacos
使用Spring Boot集成Nacos
通过上述步骤,Spring Boot应用可以成功集成Nacos,利用Nacos的服务发现和配置管理功能来提升微服务架构的灵活性和可维护性。通过这种集成,开发者可以更高效地管理和部署微服务。
68 17
|
5天前
|
XML JavaScript Java
SpringBoot集成Shiro权限+Jwt认证
本文主要描述如何快速基于SpringBoot 2.5.X版本集成Shiro+JWT框架,让大家快速实现无状态登陆和接口权限认证主体框架,具体业务细节未实现,大家按照实际项目补充。
38 11
|
7天前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
134 12
|
13天前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
56 8
|
1月前
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
79 12
|
1月前
|
XML Java API
Spring Boot集成MinIO
本文介绍了如何在Spring Boot项目中集成MinIO,一个高性能的分布式对象存储服务。主要步骤包括:引入MinIO依赖、配置MinIO属性、创建MinIO配置类和服务类、使用服务类实现文件上传和下载功能,以及运行应用进行测试。通过这些步骤,可以轻松地在项目中使用MinIO的对象存储功能。
|
2月前
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
91 5
|
2月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
72 1
|
2月前
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
2月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
495 1

热门文章

最新文章