首页 > 其他分享 >Jenkins持续集成

Jenkins持续集成

时间:2023-03-03 16:25:09浏览次数:42  
标签:集成 opt 持续 brew jenkins sonar Jenkins

前言

本文简单记录Jenkins的学习与操作步骤,操作系统为macOS,官网文档:https://www.jenkins.io/zh/doc/

Jenkins概述

  • Jenkins是什么:Jenkins是一个独立的开源自动化服务器,基于Java开发,可用于自动执行与构建,测试,交付或部署软件相关的各种任务。其中:

    • 持续集成:
      • 功能角度:类似maven生命周期,集成各种插件。 Jenkins可以集成git, maven, sonar,部署插件等。
      • 项目角度:各个小组分别负责各个模块开发,本模块独立测试虽然能够通过,但是上线前将所有模块整合到一起集成测试却发现很多问题,想要解决就需要把代码返工重写,而且仍然有可能有问题。那么经常性、频繁的把所有模块集成在一起进行测试,有问题尽早发现,这就是持续集成,目的是尽早发现项目整体运行问题,尽早解决。
    • 持续交付:
      • 功能角度:功能迭代迅速,持续发布,不需要等待一个大版本再发布。
      • 项目角度:项目的各个升级版本之间间隔如果时间太长,对用户反馈修改不及时,无法改善用户体验,用户流失严重。那么经常用小版本不断进行快速迭代,不断收集用户反馈信息,用最快的速度改进优化,目的是研发团队的最新代码能够尽快让最终用户体验到。
  • Jenkins目标

    • 降低风险:—天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷。
    • 减少重复过程:编译、测试、打包、部署等等固定操作都必须要做,无法省略任何一个环节,而使用Jenkins等持续集成工具,可以把构建环节从手动完成转换为自动化完成。
    • 随时生成可部署的软件:持续集成可以在随时发布可以部署的软件。利用持续集成,可以经常对源代码进行一些小改动,并将这些改动和其他的代码进行集成,如果出现问题,项目团队马上可知晓,问题会第一时间被修复。不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有可能会导致延迟发布产品。
  • Jenkins的优点

    • 配置简单:是所有CI产品中在安装和配置上最简单的
    • 用户体验:基于Web访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。
    • Java相关:Jenkins是基于Java开发的(如果你是一个Java开发人员,这是非常有用的),但它不仅限于构建基于Java的软件。
    • 应用便捷:Jenkins拥有大量的插件。这些插件极大的扩展了Jenkins的功能,且都是开源的,可以直接通过web界面来进行安装与管理。

Jenkins安装

官网参考链接:https://www.jenkins.io/doc/book/installing/ ,本人使用的macOS系统,暂时先记录此系统版本

  1. 安装Jenkins及前置程序
    brew install openjdk@17
    brew install maven3.9
    brew install sonarqube
    brew install sonarqube-scanner
    brew install jenkins
    
  2. 配置服务
    • 配置jdk环境变量
    # 系统Java包装器找到这个JDK,执行
    sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
    
    # 设置JAVA_HOME
    # vim ~/.zshrc
    export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"
    # 使配置生效
    source ~/.zshrc
    
    • maven已全部自动配好
    • sonarqube服务配置:sonar.properties
    # 查看配置文件目录
    brew list sonarqube
    # 编辑,依次修改sonar.jdbc、sonar.web相关配置,参考sonar学习笔记
    vim /opt/homebrew/Cellar/sonarqube/9.9.0.65466/libexec/conf/sonar.properties
    
    • sonarqube-scanner配置:sonar-scanner.properties
    # 编辑
    vim /opt/homebrew/Cellar/sonar-scanner/4.8.0.2856/libexec/conf/sonar-scanner.properties
    # 调整内容
    sonar.host.url=http://localhost:9000
    sonar.sourceEncoding=UTF-8
    sonar.projectKey=study-jenkins-sonar-demo
    
    • jenkins配置:默认8080端口
    # 编辑
    vim /opt/homebrew/Cellar/jenkins/2.393/homebrew.mxcl.jenkins.plist
    # 修改服务ip和端口
    <array>
            <string>/opt/homebrew/opt/jenkins/bin/jenkins</string>
            <string>--httpListenAddress=127.0.0.1</string>
            <string>--httpPort=8089</string>
    </array>
    
  3. 启动服务
    brew services start jenkins
    brew services start sonarqube
    brew services start sonar-scanner
    
  4. 解锁Jenkins:访问http://localhost:8080,输入启动Jenkins时的密令解锁

Jenkins的使用

通过配置git、jdk、maven、sonar实现项目自动集成、打包、检查、发布。参考官网:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/

  1. 全局工具配置:依次配置Git、JDK、Maven、Sonar(需要先在插件管理里面安装SonarQube Scanner for Jenkins 插件)
    Dashboard -》系统管理 -》全局工具配置



  2. 关联git项目:Dashboard -》输入任务名称(随意) -》 选择“构建自由风格的项目” -》确定 -》配置“源码管理,选择Git,输入项目git地址和git登录账户” -》Build Steps:依次设置Maven、Execute SonarQube Scanner -》应用并保存


  3. 构建项目

  4. 其他功能参考官网使用,暂时先学到这

标签:集成,opt,持续,brew,jenkins,sonar,Jenkins
From: https://www.cnblogs.com/alan1995/p/17176079.html

相关文章

  • 最全的uniapp脚手架开发,集成eslint,ui库,request请求,ts,支持vue2, vue3
    期望你的收获前端工程化中脚手架的整体设计和结构能够自己独立为企业定制一套前端脚手架背景开发新项目遇到的问题开发时间短要求技术栈完整辅助功能完善针......
  • mybtis分页插件pagehelper集成
    1,引入依赖,spingboot版本,少配置及兼容性<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><vers......
  • SpringBoot集成Knife4j
    转载自: SpringBoot集成Knife4j-hviger-博客园(cnblogs.com)Knife4j简介Knife4j官网地址:https://doc.xiaominfo.com/knife4j是为JavaMVC框架集成Swagger生成Ap......
  • Java项目集成工作流activiti,会签
    前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot......
  • springboot gradle 集成流程引擎activiti
    plugins{id'org.springframework.boot'version'2.1.4.RELEASE'id'io.spring.dependency-management'version'1.0.13.RELEASE'id'java'}group=......
  • 我们软件与钉钉集成调用的实例测试效果
    我们的软件已经完成阿里钉钉的接口集成工作。下面是调用接口获取到的查询结果图示:......
  • pytest 的命令行执行 ;jenkins命令行执行
    命令行执行#!/bin/bashcd/home/autoTest/yi_api_test_profess/test_casepython3-mpytest-vstest_order_profess.py-mcn--alluredir/root/.jenkins/workspace/yi......
  • 基于k8s构建企业jenkins CICD(一)
    介绍及准备工作1.概述持续集成(ContinuousIntegration,CI):代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果反馈。持续部署(ContinuousDeployment,CD):部署......
  • jenkins部署微服务
    非容器发布步骤1.拉取代码2.编译各微服务模块3.发送微服务模块的jar包到目标机4.登录目标机启动各微服务模块对应jar包发布中的问题1.docker中的文件不能映射到宿主机问题:do......
  • DataEase 集成 CAS 实现用户单点登录
    场景介绍随着企业IT场景越来越复杂,应用平台不断增加,用户需要管理每个应用平台的登录信息;用户集中管理平台(如:“LDAP”)可以使用户在所有应用平台使用同一个用户名进行登录;而......