使用Jenkins實現CI/CD.這個雖然是非常簡單和基礎的功能,但是我用了很長時間才摸着石頭過了這趟水.
本文使用的技術為:
Jenkins+Git+Maven+Tomcat
簡單來說:
通過Jenkins拉取git倉庫代碼,使用遠程命令將maven編譯測試好的war包發送(發布)到遠程Tomcat服務器上.
具體步驟:
假設Jenkins已安裝,遠程Tomcat也已安裝.(具體安裝步驟老生常談了,不再廢話,不知道的可以自行搜索我的博客,都有記錄的)
我這里是Jenkins/Git/Maven在同一台服務器上,所以下面的內容,需要根據你的具體情況做微調
1.Jenkins服務器安裝好Git和Maven
git安裝步驟: 直接yum install git -y
Maven安裝步驟:https://www.cnblogs.com/biaopei/p/11104130.html
獲取git和maven的命令所在位置
[root@130-node1 SayHi]# which git /usr/bin/git [root@130-node1 SayHi]# which mvn /usr/local/maven/bin/mvn [root@130-node1 SayHi]#
2.進入Jenkins配置git和maven
配置git
配置maven
3.Git服務器上新建Maven Web項目
我這里是在Jenkins服務器上
mvn archetype:generate -DgroupId=com.companyname.automobile -DartifactId=SayHi -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=internal #SayHi是項目名,可自定義,報錯的話可以多執行幾次 cd SayHi/ mvn clean package
git init #我們需要將這個項目初始化為代碼庫
git add ./*
git commit -m "add first code"
我們來看一下Maven Web項目結構
[root@130-node1 SayHi]# tree . |-- pom.xml |-- src | `-- main | |-- resources | `-- webapp | |-- index.jsp | `-- WEB-INF | `-- web.xml `-- target |-- classes |-- maven-archiver | `-- pom.properties |-- SayHi | |-- index.jsp | |-- META-INF | `-- WEB-INF | |-- classes | `-- web.xml `-- SayHi.war 12 directories, 7 files [root@130-node1 SayHi]# cat src/main/webapp/index.jsp <html> <body> <h2>Hello World!</h2> </body> </html> [root@130-node1 SayHi]#
我們的Web項目頁面內容就是index.jsp.如果CI/CD成功的話,我們可以在遠程Tomcat服務器上訪問到這個頁面
4.在Jenkins新增項目任務
選擇自由項目即可.
在代碼管理這里.我沒有使用憑證,直接通過ssh-copy-id免密登陸git服務器實現的.通過帳號密碼的話,一直會報錯,搞不懂....
配置自動發送到遠程tomcat的webapp下
5.開始構建該項目
進入該項目,點擊左側的Build Now
這是我的第三次構建的日志.可以看到,構建成功的提示
6.確認是否正常發布到遠程Tomcat服務器
以下是我的Tomcat目錄,可以看到有一個SayHi.war並且自動進行解壓
[root@129-node2 webapps]# pwd /root/apache-tomcat-9.0.34/webapps [root@129-node2 webapps]# ls docs examples host-manager manager ROOT SayHi SayHi.war [root@129-node2 webapps]#
嘗試訪問遠程Tomcat服務器服務
搞定!!!
Jenkins上(即Git倉庫)的Maven Web項目成功編譯測試並發布到遠程Tomcat服務器上