项目代码
流水线设计
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!groovy //下载源码 String srcUrl = "${env.srcUrl}" String branchName = "${env.branchName}" //打包 String buildType = "${env.buildType}" String buildShell = "${env.buildShell}" pipeline { agent { node { label 'master' } } stages { stage('GetCode') { steps { script { checkout([$class: 'GitSCM', branches: [[name: '${branchName}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitlab', url: '${srcUrl}']]]) } } } stage('Build') { steps { script { mvnhome = tool "M2" sh "${mvnhome}/bin/mvn ${buildShell}" jarName = sh returnStdout: true, script: "cd target && ls *.jar" jarName = jarName - " " sh "cp target/${jarName} /root" } } } stage('Test') { steps { script { println("dan'yuan单元ce'shi") } } } stage('Deploy') { steps { script { println("ansible bu shu......") sh "java -jar /root/${jarName}" } } } } }
部署结果
Jenkins设置自己的全局环境变量
maven打包问题处理
jenkins控制日志内容的输出
有些执行命令的内容不方便在日志中打印出来
sh "/home/jenkins/a.sh 2>&1 >/dev/null" 显示结果如下
把需要执行的命令提取到一个单独的脚本进行调用即可
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[jenkins]$ vi a.sh #!/bin/bash +x /usr/local/sbin/kubectl --kubeconfig /home/jenkins/kubectl/k8s-cluster/siem-cluster/kube_config_rancher-cluster.yml replace -f /home/jenkins/kubectl/k8s-cluster/siem-cluster/config-center.yml --force echo "a.sh 执行完毕"
详细的命令信息不再进行显示输出