Jenkins连接Maven自动化部署构建SpringBoot

Jenkins连接Maven自动化部署构建SpringBoot

将此文章写给我最心爱的女孩

目录

  • Jenkins连接Maven自动化部署构建SpringBoot
    • 1.首先下载maven拉取到服务器
    • 2.解压maven并进入解压文件修改setting.xml
    • 2.拉取jdk18到服务器并解压
    • 3.将jdk还有maven移动到jenkins的挂载目录
    • 4.进入jenkins容器
    • 5.在jenkins的全局配置中配置jdk与maven
    • 6.jenkins安装插件 Publish Over SSH
    • 7.jenkins服务器创建一个jar包存放目录
    • 7.进入系统配置修改Publish over SSH
    • 8.创建一个java项目上传到gitlab
    • 9.jenkins拉取gitlab代码
    • 10.job构建操作打包
    • 11.推送jar包到目标服务器
    • 12.项目编写dockerfile与docker-compose.yml
    • 13.jenkins配置构建后操作

1.首先下载maven拉取到服务器

Maven下载地址

2.解压maven并进入解压文件修改setting.xml

  • 添加阿里云镜像地址
 mirrors>
 	<mirror>
        <id>alimavenid>
        <name>aliyun mavenname>
        <url>https://maven.aliyun.com/repository/public/url>
        <mirrorOf>centralmirrorOf>
    mirror>
 mirrors>
  • 添加jdk8编译
profiles>
  <profile>
    <id>jdk8id>
    <activation>
        <activeByDefault>trueactiveByDefault>
        <jdk>1.8jdk>
    activation>
    <properties>
        <maven.compiler.source>1.8maven.compiler.source>
        <maven.compiler.target>1.8maven.compiler.target>
        <maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
    properties>
 profile>
profiles>

  • 激活profile
<activeProfiles>
    <activeProfile>jdk8activeProfile>
 activeProfiles>

2.拉取jdk18到服务器并解压

[root@npy home]# ls
gitlab  java  jdk  jenkins  maven

3.将jdk还有maven移动到jenkins的挂载目录

[root@npy home]# ls
gitlab  java  jdk  jenkins  maven
[root@npy home]# mv jdk/ /home/jenkins/jenkins_mount
[root@npy home]# mv maven/ /home/jenkins/jenkins_mount
[root@npy home]# ls
gitlab  java  jenkins

4.进入jenkins容器

docker exec -it f315593f41fc bash

找到jdk与maven的目录

jenkins@f315593f41fc:~$ cd jdk/
jenkins@f315593f41fc:~/jdk$ ls
COPYRIGHT  LICENSE  README.html  THIRDPARTYLICENSEREADME-JAVAFX.txt  THIRDPARTYLICENSEREADME.txt  bin  db  include  javafx-src.zip  jre  lib  man  release  src.zip
jenkins@f315593f41fc:~/jdk$ pwd
/var/jenkins_home/jdk

jenkins@f315593f41fc:~$ cd maven/
jenkins@f315593f41fc:~/maven$ ls
LICENSE  NOTICE  README.txt  bin  boot	conf  lib
jenkins@f315593f41fc:~/maven$ pwd
/var/jenkins_home/maven

5.在jenkins的全局配置中配置jdk与maven

Jenkins连接Maven自动化部署构建SpringBoot_第1张图片

Jenkins连接Maven自动化部署构建SpringBoot_第2张图片

6.jenkins安装插件 Publish Over SSH

Jenkins连接Maven自动化部署构建SpringBoot_第3张图片

7.jenkins服务器创建一个jar包存放目录

[root@npy jenkins]# ls
jenkins_mount  jenkins.war
[root@npy jenkins]# mkdir MavenScripts
[root@npy jenkins]# ls
jenkins_mount  jenkins.war  MavenScripts
[root@npy jenkins]# chmod 777 -R MavenScripts/
[root@npy jenkins]# ls
jenkins_mount  jenkins.war  MavenScripts
[root@npy jenkins]# 

7.进入系统配置修改Publish over SSH

Jenkins连接Maven自动化部署构建SpringBoot_第4张图片

8.创建一个java项目上传到gitlab

Jenkins连接Maven自动化部署构建SpringBoot_第5张图片

9.jenkins拉取gitlab代码

教程看这个

Jenkins连接Maven自动化部署构建SpringBoot_第6张图片

10.job构建操作打包

Jenkins连接Maven自动化部署构建SpringBoot_第7张图片

应用保存之后重新构建,就会执行打包操作,第一次打包下载会有点慢,不要急哦。

Jenkins连接Maven自动化部署构建SpringBoot_第8张图片

进入workspace的项目的target就可以看到打包的文件了

[root@npy target]# ls
classes  generated-sources  generated-test-sources  lover_story_back-0.0.1-SNAPSHOT.jar  lover_story_back-0.0.1-SNAPSHOT.jar.original  maven-archiver  maven-status  surefire-reports  test-classes
[root@npy target]# 

11.推送jar包到目标服务器

jenkins构建后操作

Jenkins连接Maven自动化部署构建SpringBoot_第9张图片

保存之后再次构建,会发现将target推送到了第七步的jar包存放路径

[root@npy jenkins]# cd MavenScripts/
[root@npy MavenScripts]# ls
[root@npy MavenScripts]# ls
target
[root@npy MavenScripts]# 

12.项目编写dockerfile与docker-compose.yml

Dockerfile

FROM daocloud.io/library/java:openjdk-8u40-jdk
COPY lover_story.jar /usr/local
WORKDIR /usr/local
CMD java -jar lover_story.jar

docker-compose.yml

version: '3.1'
services:
  lover_story:
    build: 
      context: ./
      dockerfile: Dockerfile
    image: lover_story:v1.0.0
    container_name: lover_story
    ports:
      - 8088:8080

13.jenkins配置构建后操作

Jenkins连接Maven自动化部署构建SpringBoot_第10张图片

cd /home/jenkins/MavenScripts/docker
mv ../target/*.jar ./
docker compsoe down
docker compose up -d --build
docker image prune -f

由于多次构建镜像会出现none的情况,因此需要添加清除操作:docker image prune -f
Jenkins连接Maven自动化部署构建SpringBoot_第11张图片

应用保存再次构建即可完成部署!

想要自动话上传构建可以看这个教程

你可能感兴趣的:(运维,jenkins,maven,自动化)