1. 程式人生 > 其它 >Jenkins部署JavaWeb專案——HelloWorld

Jenkins部署JavaWeb專案——HelloWorld

Jenkins部署JavaWeb專案——HelloWorld

環境:

  • IntelliJ IDEA

  • 雲伺服器一臺(CentOS7)

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:先使用預設值,不行再配置,配置同理

5. Jenkins建立新任務

5.1 修改Tomcat配置檔案

解釋:Jenkin將專案構建好之後,會將war包部署到Tomcat中執行。為安全考慮需要設定訪問tomcat所需的賬號和密碼

(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。