首页主机资讯Debian JSP开发中如何使用Jenkins

Debian JSP开发中如何使用Jenkins

时间2025-12-19 03:15:05发布访客分类主机资讯浏览292
导读:在 Debian 上使用 Jenkins 构建与部署 JSP 项目的实践指南 一 环境准备与安装 安装 Java(推荐 OpenJDK 11): 执行:sudo apt update && sudo apt instal...

在 Debian 上使用 Jenkins 构建与部署 JSP 项目的实践指南

一 环境准备与安装

  • 安装 Java(推荐 OpenJDK 11):
    • 执行:sudo apt update & & sudo apt install -y openjdk-11-jdk
    • 验证:java -version
  • 安装并启动 Jenkins(官方仓库方式,Debian 12 推荐签名源):
    • 导入密钥:curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
    • 添加源:echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /devref
    • 安装与启动:sudo apt update & & sudo apt install -y jenkins
    • 开机自启:sudo systemctl enable --now jenkins
    • 查看初始密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    • 访问控制台:http://< 服务器IP> :8080,完成解锁与插件安装
  • 安装 Tomcat 9(作为 JSP 容器):
    • 执行:sudo apt install -y tomcat9 tomcat9-admin
    • 管理界面:默认位于 http://< 服务器IP> :8080/manager/html(需配置用户与权限)
  • 安装 MavenGit(JSP 项目常用构建与源码管理工具):
    • 执行:sudo apt install -y maven git
  • 防火墙放行(如使用 UFW):sudo ufw allow 8080

二 创建 Jenkins 任务与流水线

  • 安装常用插件(首次或“插件管理”中安装):Pipeline、Git、Maven Integration、Credentials Binding、Docker(如需容器化)
  • 新建任务:选择 Pipeline,在“Pipeline”处选择 Pipeline script from SCM,配置 Git 仓库与凭据;在仓库根目录放置 Jenkinsfile
  • 示例 Jenkinsfile(Maven 多模块或传统 war 打包,部署到本地 Tomcat,使用 Tomcat Manager 部署):
    pipeline {
    
      agent any
      tools {
    
        maven 'Maven-3'   // 在“全局工具配置”中预先配置
        jdk   'OpenJDK-11'
      }
    
      environment {
    
        // 建议使用 Jenkins 凭据 ID(Credentials Binding)
        TOMCAT_URL      = 'http://localhost:8080/manager/text'
        TOMCAT_USER     = credentials('tomcat-manager-user')
        TOMCAT_PASS     = credentials('tomcat-manager-pass')
        APP_NAME        = 'myapp'
        WAR_PATH        = "target/${
    APP_NAME}
    .war"
        DEPLOY_CONTEXT  = "/${
    APP_NAME}
    "
      }
    
      stages {
    
        stage('Checkout') {
    
          steps {
     git branch: 'main', url: 'https://github.com/your-org/your-jsp-app.git' }
    
        }
    
        stage('Build') {
    
          steps {
    
            sh 'mvn -B clean package -DskipTests'
            archiveArtifacts artifacts: env.WAR_PATH, fingerprint: true
          }
    
        }
    
        stage('Deploy to Tomcat') {
    
          steps {
    
            sh '''
              curl --upload-file "${
    WAR_PATH}
    " \
                   --user "${
    TOMCAT_USER}
    :${
    TOMCAT_PASS}
    " \
                   "${
    TOMCAT_URL}
    /deploy?path=${
    DEPLOY_CONTEXT}
        &
    update=true"
            '''
          }
    
        }
    
      }
    
      post {
    
        success {
     echo "Deployed ${
    APP_NAME}
     to ${
    TOMCAT_URL}
    ${
    DEPLOY_CONTEXT}
    " }
    
        failure {
     echo "Build or deploy failed." }
    
      }
    
    }
    
    
    说明:
    • 上述示例使用 Tomcat 的“Text”接口进行部署,需在 Tomcat 中配置具有部署权限的管理员用户(见下一节)
    • 若使用 WAR 外部目录部署,可改为 sh 'cp ${ WAR_PATH} /var/lib/tomcat9/webapps/${ APP_NAME} .war & & systemctl reload tomcat9'(需赋予 jenkins 用户相应目录权限)

三 Tomcat 与权限配置

  • 为 Tomcat Manager 添加可部署用户(编辑 /etc/tomcat9/tomcat-users.xml):
    <
        tomcat-users>
        
      <
        role rolename="manager-script"/>
        
      <
        role rolename="manager-gui"/>
        
      <
        user username="deployer" password="StrongPass!23" roles="manager-script,manager-gui"/>
        
    <
        /tomcat-users>
        
    
    修改后重启 Tomcat:sudo systemctl restart tomcat9
  • 权限与安全:
    • 若采用“文件复制部署”,确保 /var/lib/tomcat9/webappsjenkins 用户可写:sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps & & sudo usermod -aG tomcat jenkins
    • 遵循最小权限原则,凭据使用 Jenkins Credentials 存储,避免明文
    • 生产环境建议通过反向代理与 HTTPS 暴露 Jenkins 与 Tomcat 管理端

四 触发与通知优化

  • 代码推送自动触发:
    • 在 Jenkins 任务“构建触发器”勾选 GitHub hook trigger for GITScm polling(或对应平台的 Webhook)
    • 在代码托管平台配置 Webhook 指向 http://< JENKINS_URL> /github-webhook/(注意公网可达与 CSRF 配置)
  • 构建后处理与质量门禁:
    • 归档构件(如 Archive the artifacts)、发布测试报告(如 JUnit)、设置 质量阈值通知(邮件、企业微信、钉钉等)
  • 可选:使用 Jenkinsfile 多分支流水线,按分支策略自动创建与运行任务

五 常见问题与排查

  • 端口冲突:
    • Jenkins 或 Tomcat 默认均为 8080,需调整其一(如将 Tomcat 改为 8081 或反向代理统一端口)
    • 修改 /etc/default/jenkins 中的 HTTP_PORT 后重启:sudo systemctl restart jenkins
  • Java 或路径问题:
    • 确认 java -version 输出为 OpenJDK 11;若 Jenkins 找不到 java,建立软链或正确设置 JAVA_HOME
  • 权限错误(Permission denied):
    • 构建或部署阶段报无权限,多为 jenkins 用户对项目目录或 Tomcat 目录无读写权限,按“Tomcat 与权限配置”修正
  • 触发器无效:
    • 公网无法访问 Webhook 时,使用 内网穿透轮询;确保 Jenkins 与代码平台网络可达
  • 插件安装慢:
    • 在“插件管理-高级”更换 Update Site 为国内镜像源以加速

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian JSP开发中如何使用Jenkins
本文地址: https://pptw.com/jishu/775863.html
Debian JSP开发中如何使用Docker Debian JSP项目如何进行负载均衡

游客 回复需填写必要信息