利用TeamCity实现maven项目的CI/CD

1.什么是TeamCity?

TeamCity 是一款由 JetBrains 开发的强大的持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD)工具。它帮助开发团队自动化构建、测试和部署过程,以确保软件项目的质量和快速交付。

TeamCity 的主要特点和优势包括:

  1. 灵活的构建配置:TeamCity 支持多种构建工具(如 Maven、Gradle、npm、MSBuild 等),可轻松集成到现有的开发工具链中。它还提供了丰富的构建配置选项,允许您根据项目需求定制构建过程。
  2. 实时构建状态和反馈:TeamCity 提供了实时的构建状态和反馈,帮助您快速发现并解决潜在问题。此外,它还支持与多种通知渠道(如邮件、Slack、HipChat 等)集成,确保团队及时了解构建过程的情况。
  3. 分布式构建:TeamCity 支持分布式构建,允许您在多台构建代理上并行执行构建任务,以提高构建速度和效率。此外,它还可以根据负载和需求自动管理构建代理,确保资源的合理分配。
  4. 丰富的插件生态:TeamCity 拥有丰富的插件生态,可以与众多第三方工具和服务集成,如版本控制系统(如 Git、SVN、Mercurial 等)、问题跟踪系统(如 Jira、YouTrack 等)以及代码审查工具(如 Codecov、SonarQube 等)。
  5. 支持多种部署方式:TeamCity 支持多种部署方式,如自动部署到云服务(如 AWS、Google Cloud、Azure 等)、容器化部署(如 Docker、Kubernetes 等)以及传统的虚拟机部署。
  6. 高度可定制和扩展:TeamCity 提供了高度可定制的用户界面,允许您根据团队和项目需求调整界面布局。此外,它还提供了丰富的 API 和扩展点,方便您开发自定义插件和集成其他工具。
  7. 良好的安全性和权限管理:TeamCity 提供了一套完善的安全性和权限管理机制,支持用户认证、角色授权以及访问控制等功能,确保您的构建过程和敏感数据得到有效保护。

2.环境搭建

在折腾之前需要理解两个概念, teamCity 和teamAgent.

  • teamCity: 管理构建代码,构建步骤, 和调度构建的服务
  • teamAgent: 真正执行构建的服务, 接受teamAgent调度管理, 可以单独安装在服务器上, 如果要构建的任务很多,可以增加很多的teamAgent.

安装teamcity

复制代码
docker run --name teamcity-server-instance -v d:\\tmp\\teamcity\\serve:/data/teamcity_server/datadir -v d:\\tmp\\teamcity\\log:/opt/teamcity/logs -p 8111:8111 jetbrains/teamcity-server

访问地址http://localhost:8111/ 设置管理员用户名和密码

安装teamagent

这里我们选择docker安装agent

复制代码
docker run -it -e SERVER_URL="http://localhost:8111"   -v d:/tmp/teamcity/teamagent/conf:/data/teamcity_agent/conf  jetbrains/teamcity-agent

安装完成之后可以在agent菜单下看到有几个teamagent

3.maven项目CI/CD配置指南

创建项目

关联github仓库代码

配置build步骤

配置maven install

选择项目默认的maven和JDK版本,也可以手动变更

上传构建jar包到目标服务器

执行ssh 命令

4.测试

点击运行按钮,可以看到构建完成,并且将jar上传到相应的目录机器上

查看运行日志

5.引用

相关推荐
大模型码小白11 分钟前
企业级检索增强后端集成:Java 服务如何管理知识库版本
java·服务器·开发语言·人工智能·python·microsoft
AI多Agent协作实战派31 分钟前
AI多Agent协作系统实战(二十二):从6列到12列——任务监控报告的进化之路
java·人工智能·uni-app·bug
千桐科技1 小时前
DataX 执行引擎正式加入:qData 开源版 v1.6.0 新增 Quartz + DataX 轻量运行模式!
java·大数据·开源·数据治理·数据中台·qdata
Irene19911 小时前
Oracle PL/SQL Developer 版本差异(11g、14)实战总结
java·开发语言
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第191题】【08_Kafka篇】第7题:消息队列的优缺点
java·消息队列·系统设计·分布式架构·技术选型
用户446139430271 小时前
Spring Boot 接入大模型:从配置到实战的完整指南
java
青石路1 小时前
如果写Redis序列化与读Redis序列化不一致,你觉得会发生什么
java·redis
煎饼学大模型1 小时前
架构决定上限:Skill 知识架构的三次重构实践
java·重构·架构·skill
llwszx1 小时前
【Java/Go后端手撸原生Agent(第五篇):多工具并行调用 + BashTool执行引擎 + Judge证据链升级】
java·后端·golang·状态机·pydantic·agnet·llm-as-judge
奈何不吃鱼1 小时前
【SpringBoot】业务多线程四大实战场景
java·spring boot·多线程