物联网架构成长之路(15)-Jenkins部署SpringBoot

本文介绍了持续集成的基本概念,并详细记录了Jenkins工具的安装与配置过程,包括JDK、Maven等前置条件的搭建,以及如何通过Jenkins进行自动化构建和测试,适合初学者入门。

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

1.前言
  现在慢慢也在负责一些工作了。这段时间有空,就多了解了解软件多人开发的一些知识。以前项目都是我一个人做的,从数据库设计到后端再到前端,全部放在一个war包丢到tomcat里面然后运行,利用tomcat自带的manager插件做简单的部署。根本没有版本管理的概念。
  现在项目开始涉及多人合作,多项目模块整合,各个中间件等等,越来越复杂了。今天碰巧了解到Jenkins工具。一个CI持续集成工具。
  CI持续集成,第一次了解到,摘抄一下解释:

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

2.Jenkins 安装

  安装JDK
  安装Maven
  安装 Jenkins.war http://mirrors.jenkins.io/war/latest/jenkins.war
  参考这篇博客 http://www.ityouknow.com/springboot/2017/11/11/springboot-jenkins.html
  https://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000

3.Jenkins使用

1 java -jar jenkins.war

  启动后,打开 http://127.0.0.1:8080, 接下来就是下一步创建帐号,增加插件这类的。由于我使用maven构造springboot程序,所有在 系统管理 -> 管理插件 安装 Maven Integration plugin 这个插件

  在 系统管理 -> 全局工具配置
  配置JDK


  配置Maven

  创建一个任务

 

4.任务配置


  如果源代码用git或者SVN管理的,直接填写url,如果只是测试而已,可以拷贝项目到系统 ~/.jenkins/workspace 目录下
  其他配置,可以根据项目需要增加自己的触发器
5.创建Linux服务
  由于jenkins是采用war包-jar模式启动的。不能很好的在后台处于Daemon运行。建议使用 supervisor 这个软件,把Jenkins直接变成一个服务。
  可以在Linux上创建一个ci用户,然后,用supervisor启动并指定9001端口:

1 # /etc/supervisor/conf.d/ci.conf
2 
3 [program:ci]
4 command=java -jar /home/ci/jenkins.war --httpPort=9001
5 user=ci
6 autostart=true
7 autorestart=true
8 startsecs=30
9 startretries=5

  Jenkins默认在当前用户的主目录下创建.jenkins目录,所有的配置文件、数据库都存放在里面,只需要备份这个目录就备份了整个CI配置。

### 使用 Jenkins 部署 Spring Boot 应用程序教程 #### 准备工作 为了成功使用 Jenkins 部署 Spring Boot 应用程序,需要完成以下准备工作: - 安装并配置好 Jenkins 和 Docker 环境。 - 创建一个可运行的 Spring Boot 工程,并确保其能够通过 Maven 或 Gradle 构建。 #### 配置 Jenkins Pipeline Jenkins 的核心功能之一是支持自动化构建和部署流程。可以通过定义 `Jenkinsfile` 来实现这一目标。以下是基于 Spring Boot 和 Angular 项目的示例说明[^1]: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/your-repo/heroes-project.git' // 替换为实际项目地址 } } stage('Build') { steps { script { sh './mvnw clean package -DskipTests' // 假设使用的是Maven作为构建工具 } } } stage('Test') { steps { script { sh './mvnw test' } } } stage('Deploy') { steps { script { echo 'Building docker image...' sh 'docker build -t your-docker-image-name .' echo 'Pushing docker image to repository...' withCredentials([usernamePassword(credentialsId: 'docker-hub', usernameVariable: 'USER', passwordVariable: 'PASS')]) { sh "echo $PASS | docker login --username $USER --password-stdin" sh 'docker push your-docker-image-name' } echo 'Deploying application...' sh 'kubectl apply -f deployment.yaml' // 如果使用 Kubernetes 进行部署 } } } } } ``` 上述脚本展示了如何利用 Jenkins 实现从代码检出到最终应用部署的一系列操作。其中涉及的关键步骤包括但不限于源码拉取、依赖打包以及容器化处理。 对于更高级的功能扩展,比如自动更新 Build 版本号或者设置私有的 Docker 仓库,则可以参考额外资料进一步学习[^2]。 #### 关于 Dockerfile 创建合适的 Dockerfile 对于顺利执行镜像制作至关重要。这里给出一段简单的模板供参考: ```dockerfile FROM openjdk:17-jdk-slim AS builder COPY target/*.jar app.jar ENTRYPOINT ["java", "-jar", "/app.jar"] EXPOSE 8080 ``` 此文件指示了基础镜像的选择方式及其内部结构布局,从而便于后续集成至 CI/CD 流水线当中。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值