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

news2024/11/28 10:57:22

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

1

这里我们选择docker安装agent

2

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配置指南

创建项目

3

关联github仓库代码

4

配置build步骤

5

配置maven install

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

6

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

7

执行ssh 命令

8

4.测试

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

9

查看运行日志

10

5.引用

  • TeamCity Tutorials
  • 利用TeamCity实现maven项目的CI/CD | Harries Blog™

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2060322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot OAuth2.0应用

本文展示Spring Boot中,新版本OAuth2.0的简单实现,版本信息: spring-boot 2.7.10 spring-security-oauth2-authorization-server 0.4.0 spring-security-oauth2-client 5.7.7 spring-boot-starter-oauth2-resource-server 2.7.10展示三个服务…

汽车服务管理系统 _od8kr

TOC springboot580汽车服务管理系统 _od8kr--论文 系统概述 该系统由个人管理员和员工管理,用户三部分组成。其中:用户进入系统首页可以实现首页,热销汽车,汽车配件,汽车资讯,后台管理,在线客…

TCP端口范围

ip_local_port_range sysctl -a | grep ip_local_port_range | head 默认情况下,net.ipv4.ip_local_port_range的默认值为32768-60999。这意味着本地应用程序可以使用的端口号范围为32768到60999。 sysctl -a | grep net.ipv4.ip_local_reserved_ports |head …

光伏检测气象站:实时监测:高效管理

随着全球对可再生能源需求的日益增长,光伏发电作为清洁能源的重要组成部分,其重要性日益凸显。然而,光伏发电的效率与稳定性受气象条件影响显著,如光照强度、温度、湿度、风速等因素均能直接影响光伏板的发电效率。因此&#xff0…

宠物空气净化器是智商税吗?希喂、范罗士热门产品真实性能测试

宠物空气净化器作为宠物领域的新产品,凭借自身独特的功能受到铲屎官们的喜爱,越来越多的商家关注到这个市场。然而,市面上品牌逐渐增多,质量却参差不齐,一些不良商家以次充好,容易让消费者陷入消费陷阱。 …

Codeforces Round 961 D. Cases 【SOS DP、思维】

D. Cases 题意 有一个长度为 n n n 且仅由前 c c c 个大写字母组成的字符串,问最少选取多少种字母为每个单词的结尾,使得每个单词长度不超过 k k k 思路 首先注意到最后一个字母一定要选择,接下来我们给出一个断言:如果一个…

Fx - day3 - 沙盒/更改集/互联更改集/配置包

Fxiaoke - day3 - 沙盒/更改集/互联更改集/配置包 学习目标:熟悉 沙盒,更改集,配置包,互联更改集 的概念以及使用场景 0、前言 沙盒理解 很多时候我们可能需要一个沙盒环境,什么是沙盒环境? 沙盒环境&…

如何打造Java SpringBoot私房菜定制上门服务系统,实现个性化餐饮体验?

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

惠海H4312 dcdc同步整流降压恒压IC 30V 40V转3.3V/5V/12V小体积大电流单片机供电

1.产品描述 H4312是一种内置30V耐压MOS,并且能够实现精确恒压以及恒流的同步降压型 DC-DC 转换器: 支持 3.1A 持续输出电流输出电压可调,最大可支持 100%占空比;通过调节FB 端口的分压电阻,可以输出2.5V到 24V的稳定电压。 H4312 采用高端…

【脏数据 bug 解决】ValueError: mean must have 1 elements if it is an iterable, got 3

问题描述: 在训练模型的过程中,出现 clip_image_processor 无法处理数据的问题,说明数据集中很可能出现了脏数据。本文使用的数据为 LAION-Aesthetics-V2-6.5plus,从 https://dagshub.com/DagsHub-Datasets/LAION-Aesthetics-V2-…

21、springboot3 vue3开发平台-前端-自定义树形穿梭框,用于角色权限分配

文章目录 1. 使用原因2. 实现3. 使用 1. 使用原因 elemenutplus 有穿梭框,但是不支持树状数据的操作,所以这里自定义树状穿梭框,用于菜单权限分配, 如下: 2. 实现 这里主要是将菜单列表树解构后添加修改组合再恢复…

STM32H7双路CAN踩坑记录

STM32H7双路CAN踩坑记录 目录 STM32H7双路CAN踩坑记录1 问题描述2 原因分析3 解决办法4 CAN配置参考代码 1 问题描述 STM32的CAN1和CAN2无法同时使用。 注:MCU使用的是STM32H743,其他型号不确定是否一样,本文只以STM32H743举例说明。 2 原因…

odoo17 网站内容存在哪了

odoo17 网站内容存在哪了 查数据库内容,却没找到 没理解这些内容到底存在了哪里呢

图文详解ThreadLocal:原理、结构与内存泄漏解析

目录 一.什么是ThreadLocal 二.ThreadLocal的内部结构 三.ThreadLocal带来的内存泄露问题 ▐ key强引用 ▐ key弱引用 总结 一.什么是ThreadLocal 在Java中,ThreadLocal 类提供了一种方式,使得每个线程可以独立地持有自己的变量副本,而…

「黑神话:悟空」狂销 15 亿!高清游戏录制神器助你称霸

短短一天时间 《黑神话:悟空》在Steam上已售出超过300万份 加上wegame、epic和ps平台 目前总销量超过450万份,总销售额超过15亿元。 根据Steam平台实时数据 8月20日晚间20点30分 该平台《黑神话:悟空》同时在线玩家人数突破200万 达到2…

手机怎么把百度网盘里的文件打印出来?

在日常生活中,我们常常需要打印各种文档,比如合同、报告或是学习资料。有时这些文件存储在网盘中,比如百度网盘,这时候如果能够直接从网盘中打印出来,将会极大地提高效率。今天,就让我们来了解一下如何使用…

PL3366C 用0.1+的芯片做过认证5V1A电源

PL3366C是一款原边反激式5W开关电源芯片恒流/恒压电源。PL3366C高度集成了功率开关,无需光耦以及次级控制电路,PL3366C的复合模式的应用使芯片能够实现低静态功耗、低音频噪音、高效率。满载时PL3366C工作在PFM模式,随着负载降低,…

I2C学习:上拉电阻选取

一.I2C简介 I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。I2C总线在使用时,需要接上拉电阻,这是因为I2C接口是开漏输出,如图1所示。 图1 I2C开漏输出 I2C有5种速度模式:标准(100KHz&am…

日志文件的理解

前言 说实在话我一直对于日志不太理解,感觉这词说的这么高大上,不好理解,甚至还有点畏惧这个东西,所以专门去研究了下,最后发现这家伙不就是输出信息嘛,就像C语言中printf输出的信息,C中cout输…

【电子通识】开关上的“|”和“0”到底哪个是开?哪个是关?

有的电器、灯具和插座上带有电源开关,开关上会出现“|”和“O”两个符号。如下所示船型开关上就有“|”和“0”。 也有开关用ON/OFF代表开闭。 如果只看符号判断“|”和“O”到底代表什么含义呢?你又能分清哪个是电路连通,哪个是电路断开…