demo地址: https://github.com/zeyangli/springboot-helloworld.git

总体目标

开发人员提交代码,更新pom信息。jenkins读取pom文件中的信息,通过nexus插件上传到nexus。通过nexus参数获取最新的包下载地址。

项目配置

pom.xml文件

  • groupId: 业务名称简称

  • artifactId: 应用名称

  • version: 版本信息

<groupId>demo</groupId>
<artifactId>demo-devops-service</artifactId>
<version>4.0</version>

注: 没做一次更新都要更改version信息,因为release的maven仓库设置了不能同版本更新。

Nexus(create repo)

Jenkins集成Nexus_Jenkins集成Nexus

Jenkins(CI)

  • 安装插件:Pipeline Utility Steps 

  • 安装插件:Nexus Artifact Uploader

  • 设置scriptApproval: 允许Approval

Jenkins集成Nexus_Jenkins集成Nexus_02

node("master"){

    stage("Get Code"){
        checkout scm
    }

    stage("Build & Unit Test"){
        def mvnHome="/usr/local/apache-maven-3.6.0"
        sh "${mvnHome}/bin/mvn clean install "

    }

    stage("Scan Code"){
        println("code scan")

    }

    stage("Push Nexus"){
        def pom = readMavenPom file: 'pom.xml'
        nexusArtifactUploader(artifacts: [[artifactId: "${pom.artifactId}",
                                           classifier: '',
                                           file: "./target/${pom.artifactId}-${pom.version}.${pom.packaging}",
                                           type: "${pom.packaging}"]],
                              credentialsId: 'nexus-admin',
                              groupId: "${pom.groupId}",
                              nexusUrl: '192.168.0.44:8081',
                              nexusVersion: 'nexus3',
                              protocol: 'http',
                              repository: "${pom.groupId}",
                              version: "${pom.version}")

    }

    stage("To Email "){


    }
}

Jenkins (CD)

  • 安装插件: Maven Artifact ChoiceListProvider (Nexus)

Jenkins集成Nexus_Jenkins集成Nexus_03

Jenkins集成Nexus_Jenkins集成Nexus_04

构建

Jenkins集成Nexus_Jenkins集成Nexus_05