• 周五. 4月 26th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

使用Jenkins测试CI/CD的自动、持续构建及测试软件(在虚拟机中)

admin

11月 28, 2021

一、使用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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注