一、总体流程
开
二、项目配置
- pom.xml文件中主要版本相关信息
- groupId:业务名称简称
- artifactId:应用名称
- packaging:项目的打包类型,pom、jar、war
- version:版本信息

三、所需插件
- Pipeline Utility Steps: 在当前工作目录中查找
原文链接:https://www.dqzboy.com 文件。 - Nexus Artifact Uploader:上传制品到制品库
- Maven Artifact ChoiceListProvider (Nexus):读取制品库中的文件
- Nexus Platform:一个
文章来源(Source):浅时光博客 将Nexus Repository Manager和Nexus Lifecycle集成到Jenkins作业中的插件
四、脚本编写
1、生成DSL语句
- 通过Jenkins流水线语法生成器,生成push Nexus的DSL

- 设置连接Nexus仓库的用户凭据
- 查看Nexus的用户凭据的唯一标识

2、编写Pipeline
pipeline {
agent {
node { label 'master'}
}
#此处省略了多个步骤,直接上传制品的步骤
stages {
stage ('上传制品') {
steps {
script {
def nexusDate = sh returnStdout: true, script: 'date +%Y%m%d-%H%M%S'
def pom = readMavenPom file: './项目目录/pom.xml' #指定读取的pom文件路径
nexusArtifactUploader(artifacts: [[artifactId: "${pom.artifactId}",
classifier: '',
file: "./项目目录/target/${pom.artifactId}-${pom.version}.${pom.packaging}",
type: "${pom.packaging}"]],
credentialsId: 'Nexus凭据ID',
groupId: "${pom.groupId}",
nexusUrl: 'Nexus—IP:8090',
nexusVersion: 'nexus3',
protocol: 'http',
repository: "maven-releases(Nexus仓库名称)",
version: "${pom.version}-${nexusDate}-${BUILD_ID}")
}
}
}
stage('部署') {
steps {
script {
sh '''
ssh ${server_user}@${serverIP} "cd /data/app && wget ${Package}" #${Package}引用Job参数化构建传的值,然后该值传给由远程目标服务器上的脚本进行引用下载
'''
}
}
}
}
}
- Nexus配置允许匿名访问服务器,不然通过wget下载会出现401报错,被拒绝。

五、创建JOB
1、创建Job任务

2、参数化构建
- 执行Jenkin
文章来源(Source):浅时光博客 s-CD时可以选择部署的Nexus中的制品;依赖插件Maven Artifact ChoiceListProvider (Nexus) - 设置连接Nexus仓库的用户凭据;上面我们已经添加了,这里直接选择即可


3、执行发布流程

强