首页主机资讯Ubuntu JSP如何实现持续集成

Ubuntu JSP如何实现持续集成

时间2025-11-14 21:07:04发布访客分类主机资讯浏览1183
导读:Ubuntu 上实现 JSP 持续集成的落地方案 一 架构与工具选型 代码与构建:使用 Git 管理源码,采用 Maven/Gradle 构建打包为 WAR。JSP 会被容器(如 Tomcat)在部署时或首次访问时编译,无需在 CI 中单...

Ubuntu 上实现 JSP 持续集成的落地方案

一 架构与工具选型

  • 代码与构建:使用 Git 管理源码,采用 Maven/Gradle 构建打包为 WAR。JSP 会被容器(如 Tomcat)在部署时或首次访问时编译,无需在 CI 中单独“编译 JSP”。
  • CI/CD 引擎:优先选用 Jenkins(Ubuntu 上易部署、插件丰富),也可使用 GitLab CI/CDTravis CI
  • 应用容器:使用 Apache Tomcat 9 作为 JSP/Servlet 容器。
  • 可选交付:引入 Docker 将 WAR 容器化,提升一致性与可回滚性。
    上述组合在 Linux/Ubuntu 场景下被广泛用于 JSP 项目的 CI/CD 实践。

二 在 Ubuntu 上搭建基础环境

  • 安装 JDK(以 OpenJDK 11 为例):
    sudo apt update & & sudo apt install -y openjdk-11-jdk
    java -version
  • 安装 Tomcat 9:
    sudo apt install -y tomcat9 tomcat9-admin
    默认管理端口为 8080,可按需调整 /etc/tomcat9/server.xml 中的 。
  • 安装 Jenkins(Ubuntu 推荐方式):
    wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    sudo sh -c ‘echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
    sudo apt update & & sudo apt install -y jenkins
    sudo systemctl start jenkins & & sudo systemctl enable jenkins
    首次访问 http://< 服务器IP> :8080,解锁并安装常用插件(如 GitPipeline)。

三 使用 Jenkins 构建与部署到 Tomcat

  • 准备示例项目
    • 使用 Maven Web 骨架生成项目,并确保打包为 WAR
      mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
      cd demo & & mvn clean package
    • 生成的 target/demo.war 即为可部署产物。
  • 配置 Jenkins Job(Freestyle 示例)
    • 源码管理:选择 Git,填写仓库 URL。
    • 构建触发器:勾选 GitHub hook trigger for GITScm polling(或轮询)。
    • 构建步骤:选择 Invoke top-level Maven targets,命令为 clean package
    • 构建后操作:
      • Archive the artifacts(归档 target/*.war)。
      • Publish JUnit test result report(归档测试报告)。
  • 部署到 Tomcat(两种常见方式)
    • Tomcat 管理接口部署(需提前在 Tomcat 配置好具有部署权限的管理员用户):
      • 在构建后操作中添加 “Deploy war/ear to a container”,填写 Tomcat URL(如 http://localhost:8080/manager/text)、用户名/密码 与 WAR 路径(如 target/demo.war)。
    • 脚本直传(免管理接口):
      • 使用 scp/rsync 将 WAR 复制到 Tomcat 的 webapps 目录,或通过 SSH 调用 Tomcat 的部署脚本;部署后 Tomcat 会自动解压运行。
  • 触发与验证
    • 提交代码触发构建;在 Jenkins 查看构建日志、测试结果、产物与部署状态;访问 http://< 服务器IP> :8080/demo/ 验证页面。
      以上流程与配置项在 Ubuntu 上的 Jenkins + Tomcat 场景中可直接复用。

四 使用 GitLab CI 的替代方案

  • 在项目根目录创建 .gitlab-ci.yml,示例:
    image: maven:3.8-openjdk-11
    stages:
    • build
    • test
    • deploy
      build:
      stage: build
      script:
      • mvn clean package -DskipTests
        artifacts:
        paths:
        • target/*.war
          test:
          stage: test
          script:
      • mvn test
        deploy:
        stage: deploy
        script:
      • scp target/*.war user@tomcat-host:/var/lib/tomcat9/webapps/
        only:
      • main
  • Tomcat 主机 SSH 公钥 配置到 GitLab CI 的 SSH Keys,确保可免密拷贝;也可结合 Docker 构建镜像并推送到仓库,再由 Runner 在目标环境部署。
    该方式适合以 GitLab 为中心的代码托管与流水线实践。

五 质量保障与运维建议

  • 质量门槛:在 CI 中加入 单元测试/集成测试代码质量检查(如 Checkstyle/SpotBugs)、测试覆盖率阈值,未达标则阻断部署。
  • 制品与版本:对 WAR 使用 时间戳/构建号 命名或推送到制品库(如 Nexus/Artifactory),便于回滚与追踪。
  • 环境与配置:将 数据库、外部服务地址 等抽离为 环境变量/配置中心,区分 测试/预发/生产 环境。
  • 安全加固:限制 Tomcat 管理接口 访问、使用 最小权限 的部署账号、开启 防火墙 与必要的 HTTPS
  • 监控与日志:接入 Prometheus + Grafana 监控 JVM/Tomcat 指标,使用 ELK(Elasticsearch/Logstash/Kibana)集中日志,并设置告警。
  • 回滚策略:保留最近 N 个构建产物;生产发布采用 蓝绿/金丝雀滚动 策略,异常一键回滚。
    这些实践有助于在 Ubuntu 上构建稳定、可观测、可回滚的 JSP 持续交付体系。

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


若转载请注明出处: Ubuntu JSP如何实现持续集成
本文地址: https://pptw.com/jishu/748428.html
Ubuntu JSP如何实现版本控制 Ubuntu JSP如何实现微服务

游客 回复需填写必要信息