一、Jenkins 簡介
(一)簡述 Jenkins 的作用與價值
Jenkins 是一款在軟件開發領域備受矚目的開源軟件項目,它基于 Java 開發,是極為重要的持續集成工具。在軟件開發的整個流程中,Jenkins 發揮著關鍵作用,能夠對那些持續且重復的工作進行有效監控。比如,它可以自動檢測代碼倉庫的變動,當開發人員提交新代碼后,按照預先設定好的規則和流程,自動觸發構建、測試以及部署等一系列操作,極大地提高了軟件開發的效率和質量,讓軟件的持續集成從設想變為現實,助力開發團隊更快速、更穩定地交付軟件產品。
二、搭建前的準備工作
(一)環境要求確認
在著手搭建 Jenkins 之前,需要先確認其運行所依賴的環境條件。從硬件方面來看,雖然 Jenkins 本身對硬件資源的需求會根據實際使用情況有所不同,但一般建議內存至少在 1GB 以上,以保證其能夠較為順暢地運行,尤其是在處理復雜項目或者頻繁構建任務時,充足的內存能避免出現卡頓甚至運行失敗的情況。
而在軟件環境方面,Jenkins 運行需要 Java 8 及以上版本的支持。所以,要提前在目標機器上安裝并配置好符合要求的 JDK(Java Development Kit),確保 Java 環境變量設置正確,使得系統能夠識別并調用 Java 相關命令。
除此之外,根據后續具體的項目需求,像如果要進行代碼版本管理及拉取代碼等操作,還需要提前安裝好 Git;若項目構建依賴 Maven 來管理項目依賴和構建流程,那也得準備好相應的 Maven 環境;若采用特定的服務器(如 Linux 環境下使用 Tomcat 部署 Jenkins),Tomcat 也需要提前進行合適的安裝與配置。測試資料獲取:點擊獲取軟件測試資料
(二)相關軟件下載
-
JDK 下載:
可以前往 Oracle 官方網站(https://www.oracle.com/java/technologies/javase-downloads.html)下載適合操作系統版本的 JDK,不過需要注意根據自己的操作系統類型(Windows、Linux 等)選擇對應的安裝包格式。例如在 Windows 下通常是.exe 可執行安裝文件,而 Linux 下一般是.tar.gz 等壓縮包形式,下載完成后按照相應的安裝向導進行安裝,并配置好環境變量,比如在 Linux 系統下,編輯~/.bashrc
或者/etc/profile
文件,添加類似export JAVA_HOME=/usr/local/java/jdk1.8.0_XXX
(這里的XXX
為具體版本號)以及將$JAVA_HOME/bin
添加到PATH
環境變量中,然后通過source
命令使其生效。 -
Git 下載:
Git 的下載途徑也較為多樣,在 Windows 上,可以從 Git 官方網站(https://git-scm.com/downloads)下載對應的安裝程序,按照提示一步步完成安裝即可。在 Linux 系統中,常見的是通過包管理器進行安裝,比如在基于 Debian 或 Ubuntu 的系統中,可以使用sudo apt-get install git
命令進行安裝;在基于 Red Hat 或 CentOS 的系統里,則可以通過sudo yum install git
命令來安裝。 -
Maven 下載:
訪問 Maven 官方網站(https://maven.apache.org/download.cgi),選擇合適的版本進行下載,下載后的文件同樣需要解壓到指定目錄,并配置好相應的環境變量,比如在 Windows 下設置MAVEN_HOME
環境變量指向解壓目錄,然后在PATH
中添加%MAVEN_HOME%\bin
;在 Linux 下類似 JDK 的配置方式,在相關配置文件中添加MAVEN_HOME
變量以及更新PATH
變量使其包含$MAVEN_HOME/bin
路徑。 -
Tomcat 下載(針對 Linux 環境下可能用到的情況):
可以從 Apache Tomcat 官方網站(https://tomcat.apache.org/download-90.cgi)選擇合適的版本下載,一般選擇核心的二進制壓縮包形式,下載后解壓到指定目錄,同樣需要配置好相關的啟動參數以及環境變量等,方便后續部署 Jenkins 等應用。
三、Jenkins 安裝步驟
(一)Windows 系統下安裝
-
下載 Jenkins:
首先,打開 Jenkins 的官方網站(https://jenkins.io/download/),在下載頁面中,根據自己的需求選擇合適的版本類型,一般來說,季度穩定版相對更為可靠,適合生產環境使用;開發版則可能包含一些新功能和改進,但穩定性可能稍遜一籌。選擇 Windows 對應的安裝文件格式,通常是.zip
格式的壓縮包,比如jenkins-2.176.3.zip
這樣的文件名,點擊下載按鈕將其下載到本地磁盤上。 -
解壓與安裝:
下載完成后,找到下載好的壓縮包文件,使用解壓軟件(如 WinRAR、7-Zip 等)將其解壓到指定的目錄,建議選擇非系統盤(如 D 盤、E 盤等)的路徑,避免占用過多系統盤空間以及可能出現的權限問題等。解壓后會得到相應的文件夾,里面包含了 Jenkins 的可執行文件等內容。接著,進入解壓后的文件夾,找到.msi
格式的安裝文件,雙擊運行它,按照安裝向導頁面的提示逐步進行操作,在選擇安裝路徑時,可以再次確認或修改為自己期望的路徑,一路點擊“下一步”按鈕,直到完成安裝。 -
訪問并配置 Jenkins:
安裝結束后,系統會自動在默認瀏覽器中打開 Jenkins 的訪問頁面(一般地址是http://localhost:8080/
),如果沒有自動打開,可以手動在瀏覽器地址欄輸入該地址進行訪問。首次訪問時,會提示需要解鎖 Jenkins,頁面上會給出獲取解鎖密碼的提示信息,按照提示去相應的文件路徑(通常在C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword
這個位置,具體可能因安裝路徑不同而稍有變化)找到密碼文件,使用文本編輯器打開它,復制里面的密碼內容,粘貼到頁面的解鎖框中,點擊“繼續”按鈕。測試資料獲取:點擊獲取軟件測試資料
接下來進入插件安裝頁面,這里可以選擇安裝推薦插件,Jenkins 會自動下載并安裝一系列常用的插件,幫助快速搭建起基本可用的環境;插件安裝完成后,會要求創建一個管理員用戶,填寫用戶名、密碼以及郵箱等信息后點擊“保存并繼續”;之后還可以根據實際情況修改 Jenkins 的訪問地址端口(例如,如果 8080 端口已被其他程序占用,可以修改為其他未使用的端口),配置完成后點擊“保存”按鈕,至此,Windows 系統下的 Jenkins 就基本搭建完成,可以開始使用了。
(二)Linux 系統下安裝
- 安裝依賴軟件(如 JDK、Git 等):
在 Linux 系統中,首先要確保已經安裝好了 JDK。可以通過命令java -version
來查看系統是否已經安裝了 Java,如果沒有安裝,則需要根據系統類型進行下載安裝。例如在 CentOS 系統中,可以通過以下步驟安裝 JDK:
# 下載 JDK 安裝包(這里以 jdk1.8 為例,實際可根據需求替換版本)
wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8uXXX-bXXX/jdk-8uXXX-linux-x64.tar.gz"
# 解壓安裝包
tar -zxvf jdk-8uXXX-linux-x64.tar.gz
# 移動到指定目錄(如 /usr/local/java 目錄下)
sudo mv jdk1.8.0_XXX /usr/local/java
# 配置環境變量,編輯 /etc/profile 文件
sudo vi /etc/profile
# 在文件末尾添加以下內容
export JAVA_HOME=/usr/local/java/jdk1.8.0_XXX
export PATH=$PATH:$JAVA_HOME/bin
# 使環境變量生效
source /etc/profile
對于 Git 的安裝,在 CentOS 系統中,可以使用 yum
命令進行安裝,執行 sudo yum install git
命令,系統會自動從默認的軟件倉庫中下載并安裝 Git;如果需要安裝特定版本或者從源碼編譯安裝等情況,則需要先獲取相應的源碼包,按照編譯安裝的流程進行操作,不過一般使用包管理器安裝就能滿足大部分需求。
- 下載 Jenkins 安裝包(war 包等形式):
可以直接從 Jenkins 官方網站下載jenkins.war
文件,不過有時候從國內的鏡像站下載速度會更快,比如清華大學開源軟件鏡像站(https://mirrors.tsinghua.edu.cn/jenkins/),使用wget
命令來下載,例如:
wget https://mirrors.tsinghua.edu.cn/jenkins/war-stable/latest/jenkins.war
這樣就能將 Jenkins 的 war
包下載到本地當前目錄下。
- 部署與啟動:
將下載好的jenkins.war
包移動到合適的位置,比如放置在已經安裝好的 Tomcat 的webapps
目錄下(前提是已經安裝配置好了 Tomcat),然后進入 Tomcat 的bin
目錄,執行啟動腳本(如./startup.sh
)啟動 Tomcat,Tomcat 在啟動過程中會自動解壓jenkins.war
包,并生成相應的文件夾結構用于存放 Jenkins 的各類文件。啟動完成后,可以通過服務器的 IP 地址和對應的端口號(Tomcat 默認端口一般是 8080,如果有修改則使用修改后的端口)在瀏覽器中訪問 Jenkins,首次訪問同樣需要獲取并輸入解鎖密碼,密碼的位置一般在服務器上/var/lib/jenkins/secrets/initialAdminPassword
文件中,按照提示完成解鎖以及后續的插件安裝、管理員用戶創建等配置操作,就可以正常使用 Jenkins 了。
(三)Docker 方式安裝
- 下載 Jenkins 鏡像:
如果選擇使用 Docker 方式來安裝 Jenkins,首先需要確保已經安裝并啟動了 Docker 服務。然后,在命令行中使用docker pull
命令從 Docker 倉庫拉取 Jenkins 鏡像,例如想要拉取基于 JDK11 的 Jenkins 鏡像,可以執行以下命令:
docker pull jenkins/jenkins:jdk11
Docker 會自動從遠程倉庫下載相應的鏡像到本地,下載速度取決于網絡情況。
- 創建 Jenkins 容器:
鏡像下載完成后,就可以使用docker run
命令來創建 Jenkins 容器了,在創建容器時需要配置一些關鍵的參數,比如:
docker run -d \-p 8080:8080 \-p 50000:50000 \--name my-jenkins \-v /var/jenkins_home:/var/jenkins_home \--restart=always \jenkins/jenkins:jdk11
上述命令中:
-d
表示讓容器在后臺運行,以守護進程的方式啟動。-p
用于端口映射,將主機的 8080 端口映射到容器內 Jenkins 默認的 8080 端口,方便通過主機的該端口訪問 Jenkins;50000 端口一般用于 Jenkins 的代理等相關功能,同樣進行映射。--name
是給容器指定一個名稱,方便后續對容器進行管理,這里取名為my-jenkins
。-v
是進行卷掛載,將主機的/var/jenkins_home
目錄掛載到容器內對應的目錄,這樣可以保證 Jenkins 的配置數據等能夠持久化存儲,避免容器刪除后數據丟失。--restart=always
則設置了容器的重啟策略,讓容器在意外停止等情況下能夠自動重啟,保障服務的連續性。測試資料獲取:點擊獲取軟件測試資料
- 驗證啟動及后續操作:
創建容器后,可以通過訪問http://主機IP:8080
(這里的主機 IP 是安裝 Docker 的服務器 IP 地址)來驗證 Jenkins 容器是否啟動成功,如果能夠正常打開 Jenkins 的登錄頁面,說明啟動成功。首次登錄同樣需要解鎖,密碼獲取方式可以通過查看容器的日志來查找,執行docker logs my-jenkins
命令,在輸出的日志內容中找到類似解鎖密碼的提示信息,復制密碼進行解鎖操作。解鎖完成后,按照常規流程安裝 Jenkins 常用的工具插件、創建項目任務、配置構建步驟等,就可以利用 Docker 部署的 Jenkins 開展持續集成等相關工作了。
四、Jenkins 搭建常見問題及解決辦法
(一)訪問報錯問題
在搭建 Jenkins 的過程中,經常會遇到訪問相關頁面時出現報錯的情況。例如,在執行安裝步驟到解鎖 Jenkins 時,訪問特定路徑可能出現 404 報錯,這有可能是由于瀏覽器自動跳轉的地址不正確或者 Jenkins 服務尚未完全啟動導致的。此時,可以嘗試手工在瀏覽器地址欄輸入正確的訪問路徑,比如在 Windows 下確認是否是 http://localhost:8080/
,在 Linux 下根據實際配置情況輸入對應的 IP 地址和端口號組成的訪問地址。另外,如果是服務啟動問題,可以查看相應的服務日志(在 Windows 下查看 Jenkins 安裝目錄下的日志文件,在 Linux 下查看如 /var/log/jenkins/jenkins.log
文件等),排查啟動失敗的原因,比如是否是端口被占用、配置文件錯誤等問題,然后針對性地進行解決。
(二)配置相關問題
-
插件安裝問題:
在安裝 Jenkins 插件時,可能會遇到各種報錯情況。比如無法連接到 Jenkins 的插件倉庫,導致插件無法下載,這時可以嘗試修改插件下載源,在 Jenkins 的系統管理 - 插件管理 - 高級選項中,將插件下載地址替換為國內的鏡像源,像清華大學開源軟件鏡像站提供的 Jenkins 插件鏡像地址(https://mirrors.tsinghua.edu.cn/jenkins/plugins/),修改后點擊“保存”按鈕,再重新嘗試安裝插件。另外,如果遇到找不到特定插件的情況,有可能是插件名稱輸入錯誤或者該插件與當前 Jenkins 版本不兼容,可以仔細核對插件名稱,并查看插件的版本兼容性說明,選擇合適的版本進行安裝。 -
權限相關問題:
有時候登錄 Jenkins 后出現空白頁,這很可能是權限不足導致的問題。一種常見的解決辦法是修改 Jenkins 的配置文件,一般是$Jenkins_home/config.xml
文件(在 Windows 下對應安裝目錄下的該文件,在 Linux 下通常是/var/lib/jenkins/config.xml
文件),找到與權限相關的配置節點,檢查權限設置是否正確,比如確保 Jenkins 用戶對相關目錄和文件有足夠的讀寫權限,必要時可以修改文件權限,使用chmod
命令(在 Linux 下)賦予相應權限,然后重啟 Jenkins 服務,再次嘗試訪問查看是否解決問題。 -
環境變量及編碼問題:
當在 Jenkins 中執行腳本出現沒有環境變量的情況時,需要檢查在 Jenkins 里是否正確配置了相應的全局工具以及對應的環境變量。比如對于 JDK、Maven 等工具,在 Jenkins 的全局工具配置中,要準確填寫這些工具在服務器上的安裝路徑,確保 Jenkins 能夠找到并調用它們。
而對于構建出現亂碼的問題,比如 maven 亂碼和 Jenkins 構建亂碼,可能是由于編碼設置不一致導致的。可以嘗試修改 Jenkins 的相關配置文件,例如在 Linux 下修改 Jenkins.xml
文件(一般在 /etc/sysconfig/jenkins
目錄下),在文件中添加編碼相關的配置參數,如 <arguments>-Dfile.encoding=UTF-8</arguments>
,然后重啟 Jenkins 服務,看亂碼問題是否得到解決。
五、Jenkins 基本使用與配置拓展
(一)常用插件安裝
在 Jenkins 的使用過程中,通過安裝合適的插件可以極大地拓展其功能。進入 Jenkins 的系統管理 - 插件管理頁面,在這里可以看到“可用插件”“已安裝插件”等不同的選項卡。常用的插件有很多,比如用于代碼版本管理的 Git 插件、用于構建項目的 Maven 插件、用于展示構建結果的 HTML Publisher 插件等。
如果要安裝插件,可以直接在“可用插件”列表中搜索想要的插件名稱,然后勾選對應的插件,點擊“直接安裝”按鈕,Jenkins 會自動從配置好的插件下載源下載并安裝插件。另外,也可以從 Jenkins 的官方插件網站(https://plugins.jenkins.io/)下載插件文件(一般是 .hpi
格式),然后在插件管理頁面選擇“高級”選項卡,在“上傳插件”區域,點擊“選擇文件”按鈕,選中下載好的插件文件,點擊“上傳”按鈕進行上傳安裝。需要注意的是,有些插件之間可能存在依賴關系,安裝時要按照依賴順序依次進行安裝,否則可能出現插件無法正常使用的情況。
(二)全局工具配置
在 Jenkins 中,進行全局工具配置是確保后續項目構建等操作能夠順利進行的重要環節。進入系統管理 - 全局工具配置頁面,在這里可以對 JDK、Maven、Git 等常用工具進行配置。
對于 JDK 的配置,填寫 JDK 的安裝路徑,比如在 Linux 下如果 JDK 安裝在 /usr/local/java/jdk1.8.0_XXX
目錄,就在“JDK”配置項的“JDK 安裝目錄”字段中填寫該路徑;在 Windows 下填寫對應的 JDK 實際安裝路徑,然后點擊“保存”按鈕。
Maven 的配置類似,填寫 Maven 的安裝目錄路徑,并且還可以設置一些 Maven 的相關參數,如本地倉庫位置等,確保 Jenkins 在構建項目時能夠正確調用 Maven 來管理項目依賴和進行構建操作。
Git 的配置則需要填寫 Git 的可執行文件所在路徑,一般在安裝 Git 后系統能夠自動識別,如果識別不了,可以手動查找并填寫正確的路徑,保證 Jenkins 可以能夠順利地從代碼倉庫中拉取代碼,進行版本控制和管理。
測試資料獲取:點擊獲取軟件測試資料
(三)新建項目與構建配置
- 新建項目步驟:
在 Jenkins 首頁,點擊“新建項目”按鈕,進入新建項目頁面。首先填寫項目的名稱,例如“my-java-project”,然后選擇項目類型,這里以“自由風格項目”為例進行介紹。點擊“確定”按鈕后,進入項目的詳細配置頁面。
在“源碼管理”部分,如果項目使用 Git 進行版本管理,選擇“Git”,然后在“Repository URL”字段填寫項目代碼倉庫的地址,比如“https://github.com/your-username/your-project.git”,并可以根據需要填寫相應的認證信息(如果代碼倉庫是私有的),如用戶名和密碼或者 SSH 密鑰等。
在“構建觸發器”部分,可以設置項目的構建觸發條件,例如選擇“Poll SCM”,并設置定時表達式,如“*/5 * * * *”表示每隔 5 分鐘檢查一次代碼倉庫是否有更新,如果有更新則觸發構建;或者根據實際情況選擇其他觸發方式,如在代碼提交到特定分支時觸發構建等。
在“構建環境”部分,可以根據項目需求選擇需要的構建環境,如是否需要使用特定的 JDK 版本、Maven 版本等,還可以配置一些環境變量等信息。
在“構建”部分,點擊“增加構建步驟”按鈕,選擇合適的構建步驟,例如如果是 Java 項目且使用 Maven 構建,可以選擇“Execute shell”(在 Linux 環境下)或者“Execute Windows batch command”(在 Windows 環境下),然后在命令輸入框中填寫 Maven 構建命令,如“mvn clean install”,這將執行清理項目、編譯代碼并安裝到本地倉庫等一系列操作。
- 構建過程配置示例:
假設我們有一個簡單的 Java Web 項目,使用 Maven 進行構建管理,并且項目代碼托管在 GitHub 上。首先在“源碼管理”中填寫好 GitHub 倉庫地址,并確保 Jenkins 所在服務器能夠正常訪問該倉庫(可能需要配置 SSH 密鑰等認證方式)。
在“構建”部分,填寫如下的構建腳本:
# 進入項目目錄
cd /var/jenkins_home/workspace/my-java-project
# 使用 Maven 進行清理操作,刪除之前構建生成的文件
mvn clean
# 執行 Maven 構建命令,編譯代碼、運行測試并打包項目
mvn package
# 將構建生成的 WAR 文件復制到 Tomcat 的 webapps 目錄下(假設已經安裝并配置好 Tomcat,且 Tomcat 的 webapps 目錄可寫)
cp target/my-java-project.war /usr/local/tomcat/webapps/
通過這樣的構建配置,當 Jenkins 檢測到代碼倉庫有更新或者按照設定的構建觸發器條件觸發構建時,就會自動拉取最新代碼,執行構建操作,并將構建生成的 WAR 文件部署到 Tomcat 中,實現了從代碼更新到項目部署的自動化流程,大大提高了項目的開發和部署效率。
總之,Jenkins 的搭建和使用是一個需要細心和耐心的過程,通過合理的環境準備、正確的安裝步驟以及有效的配置和問題解決,能夠讓 Jenkins 在軟件開發的持續集成和持續部署中發揮重要作用,幫助開發團隊提高工作效率,保障軟件質量,快速響應市場需求,提升項目的整體競爭力。在實際使用過程中,還可以根據項目的具體特點和需求,進一步探索和拓展 Jenkins 的功能和應用場景,不斷優化和完善軟件開發流程。
測試資料獲取:點擊獲取軟件測試資料