Jenkins部署JavaWeb專案——HelloWorld
Jenkins部署JavaWeb專案——HelloWorld
IntelliJ IDEA
1. 建立JavaWeb專案
使用Spring Boot框架搭建專案:
目錄結構:
pom.xml匯入依賴:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
Controller
@Controller public class HelloController { @RequestMapping("/") public String welcome(){ return "main"; } @RequestMapping("/hello/{name}") public String hello(@PathVariable String name, Model model){ System.out.println(name); String msg=name+"你好呀!"; model.addAttribute("msg",msg); return "hello"; } }
hello.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> </head> <body> <p th:text="${msg}">你好呀, Thymeleaf</p> </body> </html>
main.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> </head> <body> <p>Spring boot整合 Thymeleaf</p> </body> </html>
application.properties
server.port=8081
執行截圖
專案打包:(主要是為了拿到war專案的名稱)
當然也可以直接通過pom檔案中的資訊,獲取war專案名稱:
名稱為: jekins-damo-0.0.1-SNAPSHOT.war
2. 推送到程式碼倉庫
(1)使用gitee建立一個遠端倉庫
(2)在idea終端輸入以下git指令:
git init
git add .
git status
git commit -m"初次提交"
git remote add origin https://gitee.com/XXXX.git #倉庫地址換成自己的
git push -u origin master
指令全部執行之後會彈出對話方塊輸入gitee賬號和密碼。如果沒有對話方塊(第一次輸入錯誤,之後預設使用該次輸入的賬號,不再彈出對話方塊),輸入以下指令進行資訊重置
git config --system --unset credential.helper
3. 軟體安裝
使用XShell連線到雲伺服器。
3.1 安裝Jenkins
官方安裝指南:https://www.jenkins.io/download/(選擇適合自己作業系統的指南)。以下參考的是CentOS7對應的安裝指南。
(1)進入一個指定目錄方便檔案管理,比如:cd /usr/local/
(2)依次輸入以下指令:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
sudo yum install epel-release java-11-openjdk-devel
sudo yum install jenkins
sudo systemctl daemon-reload
注:安裝過程中可能會出現網路連線失敗的問題。可以ctr+c先結束當前執行過程,ping一下提示資訊中顯示的域名,能夠ping通再重新執行之前的命令
(3)啟動jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins # 檢視執行狀態。看到 Active:active(running) 表示執行。狀態資訊中包含了Jenkins安裝目錄
(4)訪問Jenkins執行之後的網址
http://雲伺服器公網ip:8080/ # 8080是Jenkins預設的埠號,如果和tomcat衝突,可以在對應的配置檔案中修改
(5)根據引導進行安裝即可,初始賬號密碼最好記住。外掛根據推薦進行安裝。
(6)其他指令
cat /etc/sysconfig/jenkins # 檢視預設安裝路徑下jenkins的配置檔案
ls /var/lib/jenkins/ # 檢視程式主目錄
jenkins:service jenkins stop # 停止
jenkins:service jenkins restart # 重啟
3.2 安裝maven
cd /usr/local #進入一個指定的目錄,方便檔案管理
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz # 下載壓縮包,下載地址可以自己搜尋。格式:wget url 。
tar zvxf apache-maven-3.6.1-bin.tar.gz #解壓
whereis maven # 顯示maven的安裝路徑,之後Jenkin全域性配置的時候需要用到
4. Jenkins配置
(1)安裝外掛:
- 外掛1:Deploy a container(如列表中不存在,則點選 Check now 更新外掛列表)
- 外掛2:Gitee (如列表中不存在 ,則點選 Check now 更新外掛列表)
- 安裝之後重啟jenkins
(2)配置maven:
新增maven的安裝路徑:系統設定—>全域性工具配置—>Maven配置
(3)配置JDK:先使用預設值,不行再配置,配置同理
(4)配置git:先使用預設值,不行再配置,配置同理
(1)Manager webapp賬號設定 修改 tomcat/conf/tomcat-user.xml 檔案,用以下程式碼完全替換掉原本檔案。(可以詳細閱讀原tomcat-user.xml檔案中的註解說明)
<?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user roles="manager-jmx"/> <user roles="manager-status"/> <---使用者名稱和密碼改成自己的-> <user username="admin" password="123" roles="manager-gui,manager-script,manager-jmx,manager-status"/> </tomcat-users>
修改 tomcat/webapps/manager/META-INF/context.xml 檔案,將檔案中的以下語句註釋掉:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
注:該語句表示Manager webapp 只能本地訪問,遠端是無法訪問的。而我們需要進行遠端訪問,所需不能這麼寫。
(2)埠設定
因為Jenkins和tomcat安裝在同一臺伺服器上,且二者的預設使用埠號都是8080,會產生衝突。所以這裡將tomcat的埠號改成8081。在tomcat/conf/service.xml 檔案中進行修改,將所有8080都換成8081。
5.2 Jenkins構建配置
(1)新建任務:選擇“構建一個自由風格的軟體專案”
(2)General:使用預設值即可
(3)原始碼管理
選擇 Git —> 新增程式碼倉庫地址 ->新增登入程式碼倉庫的憑據(賬號資訊)->指定分支(使用預設值)
(4)構建觸發器
選擇“Gitee webhook 出發構建” .(如果沒有安裝gitee webhook外掛這一項是沒有的)
選中之後會出現一些配置項,其他都不管使用預設值。找到 Gitee WebHook密碼,點選生成。
新增Gitee WebHook:進入程式碼倉庫->管理->WebHook->新增WebHook
貼上url和密碼
(5)構建
下拉框中選中“呼叫頂層maven目標”(注意:如果沒有在全域性工具配置中設定maven這一項是沒有的)
(6)構建後的步驟
選中“Deploy war/ear to a container”(如果沒有安裝Deploy a container外掛,這一項是沒有的)
Tomcat遠端登陸中的憑據,根據之前tomcat配置檔案中設定的使用者名稱和密碼來建立。
(6)設定完畢,點選儲存。
6、測試
點選“立即構建”
構建成功之後,輸入tomcat執行的url進行測試。此後每次推送程式碼都會自動部署到tomcat。