zoukankan      html  css  js  c++  java
  • 使用Jenkins测试CI/CD的自动、持续构建及测试软件(在虚拟机中)

    一、使用Maven打包微服务项目

    先测试一下能否打Jar包

    1. 结构图:其中common为配置项、工具模块,没有main方法;service_paper为核心业务模块

      image-20210730184857009
    2. 项目的打包类型:pom、jar、war

      1. pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。
      2. jar工程:将会打包成jar用作jar包使用,packaging默认类型。
      3. war工程:将会打包成war,发布在服务器上的工程。如网站或服务。

      即:

      1. 在PaperTypesettingSystem-Backend,service这些上层文件夹管理模块中,添加<packaging>pom</packaging>
      2. 在common模块(没有main方法的工具模块)中添加<packaging>jar</packaging>
      3. 在service_paper具体的业务代码模块中添加<packaging>jar</packaging>

      根据maven的继承特性,在service文件夹模块中添加:

      <build>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
          </plugins>
      
          <resources>
              <resource>
                  <directory>src/main/java</directory>
                  <includes>
                      <include>**/*.properties</include>
                      <include>**/*.xml</include>
                  </includes>
                  <filtering>false</filtering>
              </resource>
              <resource>
                  <directory>src/main/resources</directory>
                  <includes>
                      <include>**/*.*</include>
                  </includes>
                  <filtering>false</filtering>
              </resource>
          </resources>
      </build>
      

      然后只需在每个有mian方法的具体的业务模块的pom中添加:

      <build>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
          </plugins>
      </build>
      

      最终打包:只需在最顶层模块的文件夹进行mvn clean package,生成jar包。

    image-20210730173749744 image-20210730173852615

    BUILD SUCCESS,jar包大小:67.8MB

    image-20210730183834762

    image-20210730190906721

    此时的jar包可以直接运行了

    image-20210730191123245

    二、安装运行环境

    1.安装JAVA、maven、git(配置环境,/etc/profile)

    #java environment
    export JAVA_HOME=/export/servers/jdk
    export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
    export PATH=$PATH:${JAVA_HOME}/bin
    
    #maven environment
    export MAVEN_HOME=/export/servers/apache-maven-3.8.1
    export PATH=$PATH:$MAVEN_HOME/bin
    

    2.安装git

    yum -y install git

    3.安装docker

    1. 安装必要的一些系统工具

      ​ yum install -y yum-utils device-mapper-persistent-data lvm2

    2. 添加软件源信息

      ​ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    3. 更新并安装Docker-CE

      ​ yum makecache fast

      ​ yum -y install docker-ce

    4. 开启Docker服务

      ​ service docker start

    5. 测试是否安装成功

      ​ docker -v

    三、安装JenKins

    1.官网下载jenkins.war包,放在jenkins文件夹内,并启动

    nohup java -jar /export/servers/jenkins/jenkins.war >/export/servers/jenkins/jenkins.out &

    image-20210730214717023

    image-20210730214813057

    2.初始化 Jenkins 插件和管理员用户

    访问jenkins

    http://hadoop01:8080

    image-20210730215014903

    3.解锁jenkins

    vi /root/.jenkins/secrets/initialAdminPassword

    image-20210730215220106

    2a447e76c0e940afb256d0779d972654

    输入密码后,继续

    image-20210730215401332

    4.配置国内的镜像

    官方下载插件慢,需要更新下载地址

    注:这里要先先杀死Jenkins

    kill -9 10967

    image-20210730215912698

    进入更新配置位置:cd {你的Jenkins工作目录}/updates

    cd /root/.jenkins/updates

    image-20210730220155337

    sed -i 's/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json && sed -i 's/http://www.google.com/https://www.baidu.com/g' default.json

    (注:这里是直接修改配置文件,如果前边Jenkins用sudo启动的话,那么这里的两个sed前均需要加上sudo)

    5.重启Jenkins,安装插件

    image-20210730220559645 image-20210730220633583 image-20210730220854357

    重试

    image-20210730220917434

    插件安装完成,创建管理员用户

    image-20210730221124228 image-20210730221234586

    保存并完成

    image-20210730221321378 image-20210730221332033

    image-20210730221344869

    四、配置 Jenkins 构建工具

    配置jdk、maven、git

    image-20210730221545583

    使用which命令

    image-20210730222303816

    1.jdk

    which jdk

    /export/servers/jdk

    2.maven

    which maven

    /export/servers/apache-maven-3.8.1

    3.git

    which git

    /usr/bin/git

    image-20210730221903313 image-20210730222133153 image-20210730222407841

    五、构建作业

    1.写好docker文件

    image-20210730222923872

    2.创建一个任务

    image-20210730223159041

    image-20210730223239146

    image-20210730223719813

    image-20210730223931792

    #!/bin/bash
    #maven打包
    mvn clean package
    echo 'package ok!'
    echo 'build start!'
    cd ./
    service_name="service-paper"
    service_prot=8001
    #查看镜像id
    IID=$(docker images | grep "$service_name" | awk '{print $3}')
    echo "IID $IID"
    if [ -n "$IID" ]
    then
        echo "exist $SERVER_NAME image,IID=$IID"
        #删除镜像
        docker rmi -f $service_name
        echo "delete $SERVER_NAME image"
        #构建
        docker build -t $service_name .
        echo "build $SERVER_NAME image"
    else
        echo "no exist $SERVER_NAME image,build docker"
        #构建
        docker build -t $service_name .
        echo "build $SERVER_NAME image"
    fi
    #查看容器id
    CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
    echo "CID $CID"
    if [ -n "$CID" ]
    then
        echo "exist $SERVER_NAME container,CID=$CID"
        #停止
        docker stop $service_name
        #删除容器
        docker rm $service_name
    else
        echo "no exist $SERVER_NAME container"
    fi
    #启动
    docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
    #查看启动日志
    #docker logs -f  $service_name
    

    回到首页面

    image-20210730224617035

    3.执行(需要先启动docker)

    service docker start

    image-20210730224823008

    下载依赖中

    image-20210730225412295

    构建

    image-20210730230120709

    4.构建成功

    image-20210730230132832

    后台查看运行情况,没问题image-20210730230626344

  • 相关阅读:
    eclipse javaWeb项目如何引入jar包
    Unity3D 批量图片资源导入设置
    WaitForTargetFPS
    自适应分辨率
    UnityException: Texture is not readable
    Unity bundle的制作和使用
    Unity3D之Assetbundle
    Unity使用外部版本控制SVN
    AssetBundle机制相关资料收集
    Assetbundle的杂七杂八
  • 原文地址:https://www.cnblogs.com/211806342wbw/p/15112841.html
Copyright © 2011-2022 走看看