Jenkins | 进阶篇 | 基于Maven构建一个Java项目

27 篇文章 1 订阅
24 篇文章 0 订阅

                       --昨夜西风凋碧树,独上高楼,望尽天涯路

  • 环境准备

硬件准备:

256 MB RAM, 推荐 512MB

10 GB of 硬盘 (用于给Jenkins以及Docker)

  • 运行Jenkins

下面通过docker运行Jenkins:

#先建立目录
mkdir jenkins-data

#运行
docker run \
  --rm \
  -u root \
  -p 8888:8080 \
  -v /root/jenkins-data:/var/jenkins_home \            #挂载Jenkins容器中的/var/jenkins_home到宿主机jenkins-data,如果jenkins-data不存在,会自动创建
  -v /var/run/docker.sock:/var/run/docker.sock \ #挂载docker.sock
  -v "$HOME":/home \                             #挂载$Home
  jenkinsci/blueocean

浏览器访问http://ip:8888/会看到需要激活Jenkins:

初始密码可以从log中查看,或者从/var/jenkins_home/secrets/initialAdminPassword文件中找:

选择安装推荐的插件之后等待插件安装完成:

之后注册账号,一路保存:

点击新建任务,创建一个pipeline任务:

编写Jenkinsfile,这里有两种方式:

直接在Jenkons Web UI中编写:

从SCM中读取Jenkinsfile,首先要在git中添加Jenkinsfile文件,之后填写配置:

两种方式都可以构建成功:

下面我们在蓝海中操作一些步骤:

点击运行:

之后可以进入到本次构建界面查看信息:

Build成功之后的界面如下:

点击右上角回到经典页面

  • 添加test stage

修改配置文件:

新添加的脚本执行maven命令来在简单的java应用程序上运行单元测试。

这个命令还生成一个jUnit xml报告,该报告保存到目标/surefire-Reports目录(在Jenkins容器的/var/jenkins_home/workspace/simple-java-maven-app目录中)。

在Blue Ocean中,结果可以通过管道运行的测试页面访问。

POST部分包含这个jUnit步骤的条件确保步骤总是在测试阶段完成时执行,而不管阶段的结果如何。

pipeline {
    agent {
        docker {
            image 'maven:3-alpine'
            args '-v /root/.m2:/root/.m2'
        }
    }
    stages {
        stage('Build') {
            steps {
                git 'https://github.com/LUFFY-lucy/simple-java-maven-app'
                sh 'mvn -B -DskipTests clean package'
            }
        }
         stage('Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit 'target/surefire-reports/*.xml'
                }
            }
        }
    }
}

同理,进入Blue Ocean,点击运行,结果如下:

  • 添加一个交付stage

修改脚本如下,新加的stage中执行一个交付的脚本文件:

pipeline {
    agent {
        docker {
            image 'maven:3-alpine'
            args '-v /root/.m2:/root/.m2'
        }
    }
    stages {
        stage('Build') {
            steps {
                git 'https://github.com/LUFFY-lucy/simple-java-maven-app'
                sh 'mvn -B -DskipTests clean package'
            }
        }
         stage('Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit 'target/surefire-reports/*.xml'
                }
            }
        }
        stage('Deliver') { 
            steps {
                sh './jenkins/scripts/deliver.sh' 
            }
        }
    }
}

该shell文件位于:

执行shell可以保持pipeline代码(即jenkinsfile)的整洁。可以将复杂的构建步骤(特别是由2个或更多步骤组成的阶段)放入单独的shell脚本文件中。这最终使Pipeline代码的维护变得更容易。

进入Blue Ocean,点击运行,之后部署成功:

至此我们已经走完了“构建”、“测试”和“交付”,这是是使用Jenkins中的maven构建更复杂的java应用程序的基础。

由于Jenkins是非常可扩展的,我们可以修改和配置它来处理构建编排和自动化的几乎任何方面。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值