此案例的环境和配置信息,可查看如下文档,此案例在以下工程中升级,有此步骤省略
jenkins持续集成入门20 - maven复合工程 , 多个子项目的工程 jenkins用下拉框筛选一个项目工程 , 代码审查 , 编译工程_小哇-CSDN博客
1 jenkins安装Extended Choice Parameter插件,支持多选框参数,并新建一个项目,配置如下
2 Jinkensfile文件如下
node {//把选择的项目信息转为数组def selectedProjects = "${project_name}".split(',')stage('gitlab拉取代码') {checkout([$class: 'GitSCM', branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab-ssh-user', url: 'git@118.31.52.50:root/multi_project.git']]])}stage('审查代码') {script {scannerHome = tool 'SonarQube-Scanner'}echo scannerHomewithSonarQubeEnv('SonarQube7.4') {for(int i=0;i<selectedProjects.size();i++){//取出每个项目的名称和端口def currentProject = selectedProjects[i];//项目名称def currentProjectName = currentProject.split('@')[0]//项目启动端口def currentProjectPort = currentProject.split('@')[1]//先切换到项目目录下,再审查代码sh """cd ${currentProjectName}${scannerHome}/bin/sonar-scanner"""}}}stage('编译代码') {sh "mvn -f pojo clean install"for(int i=0;i<selectedProjects.size();i++){//取出每个项目的名称和端口def currentProject = selectedProjects[i];//项目名称def currentProjectName = currentProject.split('@')[0]//项目启动端口def currentProjectPort = currentProject.split('@')[1]//用-f编译不同的项目sh "mvn -f ${currentProjectName} clean package -DskipTests"}}}
3 测试,运行效果如下