Ubuntu JSP如何实现持续集成
导读: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/CD 或 Travis 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,解锁并安装常用插件(如 Git、Pipeline)。
三 使用 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 即为可部署产物。
- 使用 Maven Web 骨架生成项目,并确保打包为 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 会自动解压运行。
- Tomcat 管理接口部署(需提前在 Tomcat 配置好具有部署权限的管理员用户):
- 触发与验证
- 提交代码触发构建;在 Jenkins 查看构建日志、测试结果、产物与部署状态;访问 http://<
服务器IP>
:8080/demo/ 验证页面。
以上流程与配置项在 Ubuntu 上的 Jenkins + Tomcat 场景中可直接复用。
- 提交代码触发构建;在 Jenkins 查看构建日志、测试结果、产物与部署状态;访问 http://<
服务器IP>
:8080/demo/ 验证页面。
四 使用 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:
- target/*.war
- mvn test
deploy:
stage: deploy
script: - scp target/*.war user@tomcat-host:/var/lib/tomcat9/webapps/
only: - main
- mvn clean package -DskipTests
- 将 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
