温馨提示×

Jenkins于Linux怎样实现自动化构建

小樊
58
2025-09-29 05:25:01
栏目: 智能运维

1. 环境准备:安装Java与Jenkins

Jenkins依赖Java环境,需先安装JDK(推荐OpenJDK 11及以上)。以CentOS为例,执行以下命令安装:
yum install -y java-11-openjdk java-11-openjdk-devel
安装完成后,配置环境变量(编辑/etc/profile,添加JAVA_HOMEPATH),并通过source /etc/profile使配置生效。

接下来安装Jenkins:通过yum直接安装(官方源更便捷):
yum install -y jenkins
启动Jenkins服务并设置开机自启:
systemctl start jenkins && systemctl enable jenkins
默认通过http://<服务器IP>:8080访问,首次登录需输入管理员密码(从/var/lib/jenkins/secrets/initialAdminPassword获取)。

2. 安装必要插件

登录Jenkins后,进入Manage Jenkins > Manage Plugins,安装以下核心插件:

  • Git Plugin:用于从Git仓库(如GitHub、GitLab)拉取代码;
  • Maven Integration Plugin(若项目使用Maven):支持Maven编译、打包;
  • Pipeline Plugin:支持Pipeline as Code(Jenkinsfile);
  • Email Extension Plugin:用于构建结果邮件通知。

3. 创建自动化构建任务

在Jenkins首页点击New Item,输入任务名称(如my-app-build),选择Freestyle project(适合简单项目)或Pipeline(适合复杂流程),点击OK

配置源码管理

选择Git,填写代码仓库URL(如https://github.com/username/repo.git),若仓库需要认证,点击Add添加Credentials(如SSH密钥或账号密码)。

配置构建触发器

根据需求选择触发方式:

  • 定时构建:如H/5 * * * *(每5分钟检查一次代码变更);
  • 代码提交触发:若使用GitLab,可选择GitLab webhook,并在GitLab仓库中配置Webhook URL(http://<Jenkins服务器IP>/project/my-app-build)。

配置构建步骤

点击Add build step,选择Execute shell(适用于Shell脚本)或Invoke top-level Maven targets(适用于Maven项目):

  • Shell脚本示例(编译Java项目并打包):
    cd /path/to/project
    mvn clean package
    
  • Maven目标示例:在Goals输入框填写clean package

配置构建后操作

可选步骤包括:

  • Archive the artifacts:归档构建产物(如target/*.jar);
  • Send build notifications:通过Email Extension Plugin发送邮件通知;
  • Deploy to server:通过SSH插件或Docker插件将产物部署到目标服务器。

4. 保存并运行任务

点击Save保存配置,返回任务首页,点击Build Now手动触发构建。构建完成后,点击Build History中的构建编号,查看Console Output(构建日志),确认构建结果。

5. 高级优化:Pipeline与自动化触发

若项目流程复杂(如包含编译、测试、部署多个阶段),建议使用Pipeline

  • 在任务配置中选择Pipeline,勾选Pipeline script from SCM,选择Git仓库,并指定Jenkinsfile路径(如Jenkinsfile位于仓库根目录);
  • 编写Jenkinsfile(示例):
    pipeline {
        agent any
        stages {
            stage('Checkout') {
                steps {
                    git branch: 'main', url: 'https://github.com/username/repo.git'
                }
            }
            stage('Build') {
                steps {
                    sh 'mvn clean package'
                }
            }
            stage('Deploy') {
                steps {
                    sh 'scp target/*.jar user@server:/app/'
                }
            }
        }
    }
    
  • 此外,可通过Jenkins CLI(下载jenkins-cli.jar,通过命令行执行java -jar jenkins-cli.jar -s http://localhost:8080/ build my-app-build)或Webhook(如GitLab的push事件触发)实现完全自动化。

0