Jenkins共享库使用
说明:共享库一般适用于重复使用部分的代码,可以降低jenkinsfile文件的大小,并且易于维护,话不多说 下面开干。
1、jenkins开启依赖库配置
2、定义共享库中的代码
此示例中的项目代码:https://github.com/zhangnan30/share/tree/main
存储Jenkins共享库用到的代码;
src : 存放项目代码; #存放共享库里定义的执行步骤
Jenkinsfile:用于所有项目的构建使用; #流水线定义的pipline代码
resources : 存放配置文件; #比如可以在此目录下定义settings.xml文件,用于构建时引用
3、编写共享库代码 path:src/org/devops/BUILD.groovy
package org.devops //判断项目是否为maven或gradel def Project(){ if ("${JOB_NAME}".contains("maven")){ JDK("${env.jdk}") BuildMaven(env.build) sh " echo this_is_java-project" } if ("${JOB_NAME}".contains("gradle")){ BuildGradle(env.build) sh "echo this_is_gradle-project" } } //设置jdk版本 def JDK(env_jdk){ def jdks = ["JDK8": "/usr/local/jdk8/bin", "JDK11": "/usr/local/jdk11/bin"] sh """ export JAVA_HOMES=${jdks["${jdk}"]} echo \$JAVA_HOMES """ } //拉代码 def PullCode(branchname, srcUrl){ checkout scmGit(branches: [[name: "${branchName}"]], extensions: [], userRemoteConfigs: [[url: "${srcUrl}"]]) } //maven构建 def BuildMaven(env_build){ data = libraryResource 'settings.xml' writeFile file: 'settings.xml', text: data sh "ls -l && cat settings.xml && ${env.build} && ls -l target/*" } //gradle构建 def BuildGradle(env_build){ sh "ls -l && ${env.build} && ls -l " }
4、编写jenkinsfile并引用上面声明的共享库
@Library("mylib2")_ //注意呼应在jenkins中自定义的共享库名称 //导入共享库里的函数 def project = new org.devops.BUILD() //定义一个叫projenct的函数并引用上面定义的共享库的文件 pipeline { agent any stages { stage('判断项目') { steps { script{ project.PullCode("${env.branchName}", "${env.srcUrl}") //引用共享库中pull代码的方法 sh "echo \$JOB_NAME" project.Project() //使用定义的projec函数,并引用共享库中的名称为Project()的方法,这样共享库就引用成功,以此类推你也可以引用其他的方法比如:JDK(env_jdk) } echo "$JOB_NAME" } } /*stage('saomiao'){ steps{ script{ withCredentials([usernamePassword(credentialsId: 'sao', passwordVariable: 'pass', usernameVariable: 'name')]) { sh """ sonar-scanner \ -Dsonar.login=${name} \ -Dsonar.password=${pass} \ -Dsonar.host.url=http://10.97.58.25:9000 """ } } } } */ stage("use plugen"){ steps{ script{ withSonarQubeEnv(credentialsId: 'sao-123') { sh "sonar-scanner -Dsonar.login=${SONAR_AUTH_TOKEN} " } } } } //post{ //always{ //cleanWs() //} //} } }
5、创建jenkins maven任务,并验证
6、创建jenkins gradle任务验证
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)