teamcity 配置maven自动化构建

       最近公司一直在配置项目自动化构建工具,也尝试了比较多的工具,其中较好的有jenkins和teamcity。但是jenkins最新版本,一个资料匮乏,并且页面老会奔溃(这点不知道是不是只有我会这样);这样一比较,teamcity就非常的强大,有团队维护、详尽的文档、页面稳定。确实是一个非常好的工具。今天记录一下本人使用teamcity构建maven自动化的过程。

       首先是安装以及和github的对接,这俩步就不再多说,在官方文档里说的非常清楚(这就是有团队维护的好处)。

https://confluence.jetbrains.com/display/TCD18/Installation+Quick+Start     teamcity安装的官方文档

https://confluence.jetbrains.com/display/TCD18/Configure+and+Run+Your+First+Build    teamcity与github的对接

    ok,文档也教了开始第一个项目。当关联了github账号后,你所有的项目就都显示,只要单击并确定,就能将项目拉进来并会识别你的项目是什么。 是不是非常方便呢。那这里就不再赘述,直接上作者构建使用的构建配置。

一、Maven构建项目

teamcity 配置maven自动化构建

在Add build step中选择maven

teamcity 配置maven自动化构建

出现构建配置内容

teamcity 配置maven自动化构建

其中step name是构建步骤名,不填也没关系。基本这个页面没有改动。

其中Code Coverage的内容,是检查项目的代码覆盖率插件。这个就看需求是否需要。下拉选择IDEA或者Jacoco,作者公司主推使用IDEA,毕竟是和teamcity一家的~~,选择之后填上要检查覆盖率的包名即可。

二:使用SSH UPLOAD上传项目到服务器制定目录

      这块内容,作者查过较多资料,但大多数都是使用FTP UPLOAD。作者不是很清楚使用FTP和SSH这俩者是否有其他的考虑,只是,使用FTP还需要在服务器上安装vsftp之类的ftp工具,并且还要开21端口。这里作者就想,既然22端口的SSH是既定要开的,何必在多开一个端口并且还要安装vsftp呢。所以就使用了SSH Upload。

       同样在build step中选择SSH UPLOAD

teamcity 配置maven自动化构建

      之后我们来配置SSH Upload的内容。

teamcity 配置maven自动化构建

step name是别名,这里大家照旧可填可不填

Target 这里是填目标部署的服务器位置,填上我们服务器的ip即可,后面的“:/”是说到我们服务器的指定位置

Deployment Credentials中选择Password,填上服务器用户的帐号密码

接下来的Paths to sources这里填的大家就要注意了,这里是指你的项目要上传的位置

.代表你这个项目目录下的所有文件和文件夹=>后面跟的,则是说要存放在服务器的具体目录,由于上面target配置的是:/,所以这里要从根目录开始制定

-:的意思是将项目中的target文件排除不上传

三:运行maven项目

      通过运行ssh命令执行启动命令

teamcity 配置maven自动化构建

      接下来配置内容

teamcity 配置maven自动化构建

step name是别名

Target是服务器地址,填上我们服务器的IP

Deployment Credentials选择Password,之后填上服务器的用户

具体是SSH Commands中的命令

这里需要注意,执行的用户是root帐号

第一步是进入我们在第二步删除的项目目录中

第二步是通过我们maven项目开启的端口号kill掉我们maven项目

第三步是启动该目录下的脚本,里面其实只有一句话,只是当时作练习,完全可以放到这里就是后台启动项目:

nohub mvn spring-boot:run &

上面这句命令,当你在teamcity中run时,会发现run的过程一直在runing,不会停止。这个时候熟悉的人都知道,nohub命令之后还需要敲回车确认,也试过在脚本中echo "\n",好吧... 这是个蠢办法。再查资料,将命令改为:

nohub mvn spring-boot:run >/dev/null 2>&1 &

完美运行。但是,每次都需要手动去run吗?NONONO,当然不需要。

四:添加自动构建

teamcity 配置maven自动化构建

Triggers只有在项目与源码关联后会默认生成。在里面我们更改一下选项

teamcity 配置maven自动化构建

好了,这样当你每次提交代码时,teamcity就会自动执行我们说陪的Build Steps。