美文网首页
jenkins+gitlab+docker 构建maven项目h

jenkins+gitlab+docker 构建maven项目h

作者: _str_ | 来源:发表于2019-11-21 20:29 被阅读0次

准备jenkins容器和maven容器

- jenkinsci/blueocean: latest    -jenkins容器需要有宿主机docker的root权限才能创建另一个容器
···
- type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
···
- maven:3-alpine

需要准备一个maven项目 这里准备了一个简单的hello world的项目 simple-java-maven-app

simple-java-maven-app
编写jenkinsfile

手动编写Jenkinsfile

pipeline {
    agent none
    stages {
        stage('build') {
            agent {
                docker {
                    image 'maven:3-alpine' 
                    args '-v /root/.m2:/root/.m2' 
                }
            }
            steps {
                sh 'mvn -B -DskipTests clean package'
            }
        }
        stage('test') {
            agent any
            steps {
                sh 'ls "${WORKSPACE}"'
            }
        }
    } 
}

jenkins中新建任务

新建任务
页面编写 描述信息 流水线配置信息

结果

image.png build过程 成功 jar包构建成功 成功将项目拉取到jenkins服务器的workspace中

使用项目中的jenkinsfile

新建任务的步骤和上面的一样
只需修改一下流水线中的脚本路径就可以了

gitlab仓库中文件路径 修改路径 build结果 test结果 deliver过程 最终结果

项目中的jenkinsfile

pipeline {
    agent {
        docker {
            image 'maven:3-alpine'
            args '-v /root/.m2:/root/.m2'
        }
    }
    stages {
        stage('Build') {
            steps {
                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'
            }
        }
    }
}

script中脚本

#!/usr/bin/env bash

echo 'The following Maven command installs your Maven-built Java application'
echo 'into the local Maven repository, which will ultimately be stored in'
echo 'Jenkins''s local Maven repository (and the "maven-repository" Docker data'
echo 'volume).'
set -x
mvn jar:jar install:install help:evaluate -Dexpression=project.name
set +x

echo 'The following complex command extracts the value of the <name/> element'
echo 'within <project/> of your Java/Maven project''s "pom.xml" file.'
set -x
NAME=`mvn help:evaluate -Dexpression=project.name | grep "^[^\[]"`
set +x

echo 'The following complex command behaves similarly to the previous one but'
echo 'extracts the value of the <version/> element within <project/> instead.'
set -x
VERSION=`mvn help:evaluate -Dexpression=project.version | grep "^[^\[]"`
set +x

echo 'The following command runs and outputs the execution of your Java'
echo 'application (which Jenkins built using Maven) to the Jenkins UI.'
set -x
java -jar target/${NAME}-${VERSION}.jar   ----最终在maven容器中执行这个命令就能看到helloworld了

注意

在写jenkinsfile的时候一定要注意格式缩进问题
在全局agent置为none的时候需要在每个stages中申明一下agent 不然会报错

相关文章

  • jenkins+gitlab+docker 构建maven项目h

    准备jenkins容器和maven容器 需要准备一个maven项目 这里准备了一个简单的hello world的...

  • Jar打包到Maven本地仓库

    打包使用maven构建的项目命令 mvn install:install-file -Dfile=/Users/h...

  • Maven 相关概念总结

    Maven 相关概念总结 构建原理 Maven 构建项目的规则是约定大于配置,约定指 Maven 提倡项目应遵循标...

  • web_auto_jenkins集成

    --------------------------------构建maven项目如下--------------...

  • Maven-基础

    Maven-Apache项目构建工具,用来管理项目依赖 Maven构建的项目非常小jar包在仓库,而不在项目下面,...

  • 概述

    maven(几乎所有java项目都使用) maven功能:项目构建、依赖管理maven安装:https://mav...

  • Eclipse 中使用maven构建Spring项目

    最新版的Spring需要使用Maven构建,本文讲述怎么在Eclipse构建Maven项目,以配置Spring项目...

  • 第一个maven项目

    这篇文档很基础,目的只是为了理解一下Maven的目录结构。不借助任何IDE构建一个Maven项目。 一、首先建立H...

  • Maven实战之初识Maven

    Maven实战之初识Maven Maven的简单介绍 作用:Maven主要用于项目的构建,管理项目的依赖以及项目的...

  • Maven笔记

    maven简介: 项目构建: 下载和配置 使用 maven整合eclipse: maven目录结构: maven工...

网友评论

      本文标题:jenkins+gitlab+docker 构建maven项目h

      本文链接:https://www.haomeiwen.com/subject/sbjgictx.html