目錄java
TeamCity是JetBrains旗下的一款持續集成[Continuous Integration,簡稱CI]工具,開箱即用。學習TeamCity以前首先須要明確一個概念,什麼是持續集成(CI)?git
持續集成(CI)是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,一般每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘早地發現集成錯誤。———《百度百科》github
業界的CI工具已經有不少了,好比開源工具Jenkins,以及CircleCI、GitLab CI等,本文不討論各CI工具的優劣,旨在介紹TeamCity的使用方式。數據庫
TeamCity是一款功能強大的持續集成(Continue Integration)工具,包括服務器端和客戶端,目前支持Java,.Net項目開發。TeamCity提供一系列特性可讓團隊快速實現持續繼承:IDE工具集成、各類消息通知、各類報表、項目的管理、分佈式的編譯等等,全部的這些,都是 讓你的團隊快速享有持續繼承帶來的效率提高、高質量的軟件保障。vim
- JDK 1.8
- Maven 3.6
- TeamCity 2019.1.5
- SpringBoot 2.1.4.RELEASE
- Ubuntu 16.04
- GitHub
注意:此環境爲本文使用環境,各位同窗可根據本身公司生產環境酌情配置。後端
1.Ubuntu系統下使用wget命令下載或者下載到本地以後,再拷貝到服務器上。瀏覽器
2.下載完成後經過tar -xvf fileName
命令,將文件解壓。緩存
3.將解壓後的文件夾移動至/usr/local/
並重名爲:TeamCity(我的習慣,以方便服務器上軟件管理,此步驟可省略),並cd到解壓後TeamCity目錄下的bin文件夾下,效果以下:服務器
4.在此目錄下執行./runAll.sh start
以啓動TeamCity。查看進程檢查是否啓動成功。以下圖,TeamCity啓動成功,默認端口爲8111網絡
5.經常使用配置
若是你要改變端口,找到下面這個 8111 位置:
vim /usr/local/TeamCity/conf/server.xml
<Connector port="8111" ...啓動程序:
/usr/local/TeamCity/bin/runAll.sh start
中止程序:
/usr/local/TeamCity/bin/runAll.sh stop
1.經過瀏覽器訪問服務器IP:TeamCity端口
,便可訪問到以下頁面。假設你已經能夠訪問到這個頁面,首先配置TeamCity軟件緩存目錄,默認爲/root/.BuildServer(初次使用不建議修改),點擊Proceed
2.TeamCity將構建歷史記錄,用戶,構建結果和一些運行時數據存儲在SQL數據庫中。官網建議在首次使用的時候選擇默認的:Internal(HSQLDB)
,可是,在生產環境中強烈建議將外部數據庫用做後端TeamCity數據庫。在本文中咱們選擇默認的:Internal(HSQLDB)
,而後進入漫長的等待。
3.等待構建初始化
4.建立一個超級管理員用戶(此步驟忘記截圖,此圖片來源網絡)
5.本文跳過了完善基礎信息步驟,若有須要,可自行百度
項目可參考TeamCity測試項目
咱們以此項目爲例,將其經過TeamCity管理,實現自動構建併發布到本服務器上。
1.點擊選擇Project
--> Create Project
2.選擇:Create project from URL,輸入項目地址和GitHub帳戶密碼
TeamCity 支持 HTTP(S)、SVN、Git 等連接方式。
3.帳號、密碼驗證經過以後,生成該項目的基礎信息。
項目名中有
-
生成項目名時不會帶出,須要手動添加。
4.TeamCity自動掃描到此項目是用Maven構建而成,因此把POM文件找了出來,若是你一個項目有多種構建方式,有對應的配置文件的話,這裏都會顯示出來的。此處咱們勾選Maven前面的複選框,點擊:Use Selected
5.因爲咱們的目的是構建完後將項目自動發佈到該服務器,因此咱們的 Maven Goals 應該是:clean install
,這裏咱們應該點擊:Edit
,進行編輯
6.以下
Goals:
maven install
Maven 打包命令Additional Maven command line parameters:
-Dmaven.test.skip=true
跳過單元測試Working directory:
/repo
maven下載jar包存放位置Maven:
<Custom>
選擇本地安裝的Maven
/usr/local/maven
本地maven安裝目錄位置JDK:
<Custom>
選擇本地安裝的JDKJDK home path: /usr/local/jdk8` 本地JDK安裝目錄位置
7.經過以上配置,已經完成經過TeamCity自動將項目獲取並編譯打包。點擊Add build step
,添加命令實現將項目自動運行。
8.選擇Command Line
;Step name能夠不填,爲此步驟的名稱;Custom Script,經過端口號將當前運行的項目中止;啓動項目
// 經過端口號將當前運行的項目中止,將此處8004換成本身的項目端口 kill -9 $(netstat -nlp | grep :8004 | awk '{print $7}' | awk -F"/" '{ print $1 }') // 啓動項目,將此處目錄換成本身實際jar包存放目錄 nohup java -jar /repo/com/wayne/wayne-teamcity/0.0.1-SNAPSHOT/wayne-teamcity-0.0.1-SNAPSHOT.jar &
9.以下圖,點擊Run
開始手動構建並運行咱們的項目
10.點擊Build Log
查看構建日誌
好像看不到什麼效果 o(╯□╰)o
經過以上配置,即實現了TeamCity(半)自動獲取最新代碼、構建、發版項目
本人已開通公衆號,歡迎你們前來灌水