如何使用Jenkins构建Git仓库中的单个子项目
Jenkins 仅构建单个子项目的解决方案
以下是两种适配不同场景的可行方案:
方案一:调整Maven执行路径(最简单,适合仓库体积不大的场景)
你当前在仓库根目录直接执行mvn clean install会默认触发所有子项目构建,只需指定Project A的路径即可实现单独构建,修改后的Jenkinsfile如下:
node { stage ('Build') { git url: 'git@github.com:abc/sample.git' withMaven { // 方式1:进入Project A目录后执行构建 sh "cd 'Project A' && mvn clean install" // 方式2:用-f参数直接指定Project A的pom文件路径,效果一致 // sh "mvn clean install -f 'Project A/pom.xml'" // 如果你是Maven多模块结构,还可以用-pl参数指定模块,-am同时构建依赖模块 // sh "mvn clean install -pl 'Project A' -am" } } }
注:可根据你的项目结构选择对应执行命令,无需修改仓库配置,改造成本最低
方案二:Git稀疏检出(适合仓库体积大,不想拉取全量代码的场景)
如果不需要拉取Project B的代码,可以配置Git稀疏检出,仅拉取Project A的目录减少代码拉取耗时,修改后的Jenkinsfile如下:
node { stage ('Checkout') { checkout scm: [ $class: 'GitSCM', branches: [[name: '*/main']], // 替换为你实际的构建分支名 userRemoteConfigs: [[url: 'git@github.com:abc/sample.git']], extensions: [ [$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: 'Project A/']]] ] ] } stage ('Build') { withMaven { sh "cd 'Project A' && mvn clean install" } } }
注:该配置只会拉取Project A目录下的所有文件,不会拉取Project B的内容,适合大仓库的增量构建场景
内容的提问来源于stack exchange,提问作者Reedima
相关产品推荐
相关产品推荐

