概述
在Jenkins中,SCM指的是源代码管理(Source Code Management——SCM)。而poll的意思是轮询,那么poll SCM指的就是轮询代码管理。开发过程中,我们会把修改后的源代码提交到源代码管理工具(如github、gitlab或gerrit等)上。而Jenkins一直按照设置的频率去刷新代码是否存在变更,发现代码变更后会触发后续的相关操作。
界面配置方式
在Jenkins中创建一个项目后,我们会先配置Source Code Management(SCM),配置完SCM后就可以在Build Triggers的选项中配置poll SCM了。
poll SCM很象Linux中的crond服务(计划任务),它的语法结构与crond也很类似,具体的设置方法这里就不列出了,在Jenkins的相关帮助中写得已经非常详细了。


其他的编译配置与日常配置相同,配置完成可以将代码提交到SCM中进行测试。在提交完成后的1分钟内,Jenkins会自动触发项目自动构建。
Pipeline的配置方式
1、下面我们先创建一个pipeline的编译条目


注意,pipeline的脚本内容尽可能使用scm,不要直接写脚本在jenkins的配置中,否则由于jenkins的服务器损块而造成损失。
2、pipeline的脚本内容
在日常的使用中,涉及到微服务相关的构建工作。为了更灵活,我们通常会使用pipeline来进行服务的构建。在pipeline中也是支持Pool SCM的,配置如下:
pipeline {
agent any
tools {
maven 'maven-3.8.6'
jdk 'openjdk18'
}
stages {
stage('Initialize') {
steps {
script {
properties([pipelineTriggers([pollSCM('* * * * *')])])
}
checkout([$class: 'GitSCM',
branches: [[name: 'master']],
userRemoteConfigs: [[credentialsId: 'jenkins_rsa',
url: 'ssh://jenkins@scm.baidu.com/api-simulation']]])
}
}
stage('build') {
steps {
sh 'mvn clean compile -pl company jib:build'
}
}
}
}