前言

本文简单记录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 -》系统管理 -》全局工具配置
    Jenkins持续集成-小白菜博客
    Jenkins持续集成-小白菜博客
    Jenkins持续集成-小白菜博客

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

  3. 构建项目

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