Jenkins之持续集成Java服务

环境:centos7 + jdk1.8 + docker + jenkins

(一)Jenkins插件配置

  • 安装git插件
  • 安装maven插件
  • 安装gitlab插件
  • 安装docker插件
    图解:
    ①配置插件在dashboard下面的manage jenkins中:

在这里插入图片描述
②点击manage plugins,安装所需要的插件

在这里插入图片描述

(二)创建Maven项目


①创建Maven项目
在这里插入图片描述
②配置源码仓库地址以及源码分支

  • 配置需要构建的源码分支:此处默认为master分支,也可修改
    在这里插入图片描述
    ③配置触发器
  • 有多种构建触发器,一般我们均不勾选。默认使用手动触发,也可添加webhook仓库回调,有push提交时自动构建
    在这里插入图片描述
    ④配置maven 自定义的settings.xml文件
  • 不使用默认的settings.xml配置,后续构建出的镜像需要推送 至远程仓库docker hub时,需要在自定义的settings.xml文件中
    配置远程docker hub的账号密码.
    在这里插入图片描述

(三)docker配置

  • 确保服务器上的docker已经连接上了远程docker hub仓库
docker login #登陆远程docker hub仓库,后续构建的java服务镜像需要推送至远程仓库,供k8s或者docker compose容器编排工具使用

(四)java服务pom.xml文件配置

  • 此处我们利用Maven插件来构建java服务镜像:

①pom文件配置如下-引入插件:

<build>
        <finalName>${project.artifactId}-${project.version}</finalName>  ##构建服务jar的名称,artifactId-version 命名
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>                ##引入maven插件
            </plugin>
            <!--构建镜像-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>  ##引入docker-maven-plugin   docker镜像插件
                <version>0.4.13</version>
<!--                绑定build-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase> ##绑定package build,也就是说在maven执行mvn package时,会自动执行镜像的构造过程,此处也可绑定其他的phase,例如clean、compile、install等等maven的构建过程
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <!--镜像构建配置-->
                <configuration>
                    <useGitCommitId>true</useGitCommitId> ##镜像的tag命名:以git提交的commitId的前7位来命名
                    <imageName>docker-hub-repo/${project.artifactId}</imageName>##镜像的名称:假设我docker-hub名称为:docker-hub-repo,则可以如pom.xml文件中构造
                    <pushImage>true</pushImage>   ##镜像构建完成后,自动推送镜像到远程hub,此处要配合serverId一起使用,serverId用来配置hub的账号密码信息
                    <baseImage>java</baseImage>
                    <entryPoint>
                        ["java","-jar","/${project.build.finalName}.jar"]  ##构建entryPoint,执行脚本命令,此处可以拓展成使用脚本发布,还可以设置发布JVM参数等等
                    </entryPoint>
                    <resources>   ##配置jar包的路径,构建镜像时,需要使用到jar包
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <serverId>docker-hub</serverId>  ##重要:此处的id设置对应着settings.xml文件中的serverId配置。用于获取远程Hub的账号密码信息,然后推送镜像,上文中有提及,下文中将给出settings.xml中server配置的实例,注意:serverId必须和settings.xml文件中的配置一致。
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>

②配置自定义的settings.xml文件

  • 在文件中加入如下配置:
    <server>
      <id>docker-hub</id>
      <username>docker-hub账号</username>
      <password>docker-hub密码</password>
      <configuration>
              <email>
              docker-hub中配置的邮箱账号
              </email>
      </configuration>
    </server>

至此,所有配置均设置,提交一下代码,然后触发下jenkins,看看效果吧!!!是不是so easy呀 ~

参考文档:
https://www.cnblogs.com/jpfss/p/10945324.html
https://www.hi-linux.com/posts/55356.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值