发布于2026-07-03 阅读(0)
扫一扫,手机访问
Ubuntu 上实现 JSP 持续集成的落地方案

先搭个框架。代码托管自然用 Git,构建工具在 Ja va 生态里绕不开 Ma ven 或 Gradle,打好 WAR 包就行。这里有个常被问到的点:JSP 要不要在 CI 里单独编译?答案是否定的——JSP 的编译工作交给 Tomcat 这类容器,部署时或者首次访问时自动处理,CI 只需要把原始文件打包进去就好。
CI/CD 引擎方面,Jenkins 在 Ubuntu 上部署顺手、插件丰富,是首选;如果你团队习惯 GitLab,那 GitLab CI/CD 或者 Tra vis CI 也完全能胜任。应用容器这块,Apache Tomcat 9 对 JSP/Servlet 的支持足够成熟。如果想进一步提升环境一致性和回滚能力,可以把 WAR 包塞进 Docker 容器里交付。这套组合在 Linux/Ubuntu 下的 JSP 项目 CI/CD 实践中,已经经过了大量验证。
动手之前,先把地基夯实。按顺序来:
sudo apt update && sudo apt install -y openjdk-11-jdk,验证一下 ja va -version。sudo apt install -y tomcat9 tomcat9-admin,默认端口 8080,如果想改可以在 /etc/tomcat9/server.xml 里调整 。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 jenkinssudo systemctl start jenkins && sudo systemctl enable jenkinshttp://<服务器IP>:8080,解锁后安装 Git、Pipeline 等常用插件。用 Ma ven Web 骨架生成一个项目:mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=ma ven-archetype-webapp -DinteractiveMode=false
进入目录后执行 mvn clean package,target/demo.war 就是我们要部署的产物。
源码管理选 Git,填上仓库地址。构建触发器可以勾选“GitHub hook trigger for GITScm polling”或者直接用轮询。构建步骤里选择“Invoke top-level Ma ven targets”,命令写 clean package。构建后操作要记得归档产物(Archive the artifacts,路径填 target/*.war),顺便发布 JUnit 测试报告(Publish JUnit test result report)。
http://localhost:8080/manager/text)、用户名/密码以及 WAR 路径(如 target/demo.war)。webapps 目录下,Tomcat 会自动解压并部署。也可以通过 SSH 调用部署脚本。提交代码触发构建,在 Jenkins 里可以查看构建日志、测试结果、产物状态和部署情况。然后访问 http://<服务器IP>:8080/demo/ 验证页面是否正常。这套流程在 Ubuntu + Jenkins + Tomcat 场景下可以直接复用。
如果你的代码已经托管在 GitLab,直接用 GitLab CI 会更省事。在项目根目录创建 .gitlab-ci.yml,一个简单的例子:
image: ma ven: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/CD 跑通只是第一步,真正要让流水线靠谱,还得加上这些:
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8