一. Jenkins官網
https://jenkins.io二. Windows安裝Jenkins
1. 下載下傳msi檔案并安裝
msi下載下傳路徑:
https://jenkins.io/content/thank-you-downloading-windows-installer/2. 通路頁面
安裝後程式會自動建立了一個Windows服務, Jenkins預設使用的端口是8080, 在浏覽器中輸入位址:
http://127.0.0.1:8080.3. 更改端口号
方式一. (此方式是指令行啟動Jenkins)
在Jenkins根目錄執行如下指令啟動服務:
java -jar jenkins.war --httpPort=8081
方式二. (此方式是通過Windows服務啟動Jenkins)
在Jenkins根目錄下的jenkins.xml中搜尋httpPort, 将其後面預設的8080改為要設定的端口号, 改好後重新啟動Jenkins的Windows服務.
4. 根據提示輸入密鑰并安裝所需要的插件, 如果不知道需要哪些插件, 安裝标準配置插件即可.
三. Docker安裝Jenkins
version: "3.5"
services:
jenkins:
image: jenkins:2.60.3
restart: always
container_name: jenkins
ports:
- "8080:8080"
volumes:
- type: bind
source: /home/paul/docker/myvolume/jenkins/home
target: /var/jenkins_home
四. Jenkins配置使用者權限
1. 點選左側的Manage Jenkins --> Configure Global Security, 選擇Enable security, Jenkins’ own user database, Allow users to sign up, Matrix-based security, 在Anonymous Users這一行全部打鈎, 點選儲存.

2. 登出, 注冊新賬戶, 然後用新賬戶登入, 同樣點開上一步頁面, 取消Allow users to sign up, 取消Anonymous Users這一行的打鈎, 在User/group to add這裡填寫新注冊的賬戶, 點選Add, 在paul這一行全部打鈎, 點選儲存.
3. 建立的paul使用者擁有所有的權限, 可以根據需要更改權限, 并且設定後Jenkins不允許注冊新賬号
五. Jenkins漢化
1. 個人建議: 各種軟體, 官網, 文檔等盡量不漢化, 看不懂的去查去學, 畢竟翻譯過來的可能會錯誤了解原意.
2. 使用中文版的Google浏覽器, 并把語言設定成了中文. 語言配置在設定頁.
3. 安裝插件: Manage Jenkins --> Manage Plugins 選中Avaliable這一欄, 在右側搜尋: Locale, 選擇Install without restart安裝
4. 出現success表示安裝成功
5. 安裝插件: Manage Jenkins --> Configure System, 找到Locale, 填寫zh_CN, 并在Ignore browser...這一項打鈎, 儲存.
六. Jenkins自動部署Maven項目
1. 在安裝了基本配置的那些插件後, 需要再安裝兩個插件:
Maven Integration plugin
Publish Over SSH
2. 配置JDK, Maven, Git
(1) Manage Jenkins --> Global Tool Configuration
(2) 設定本地JDK的安裝路徑(若不使用本地已有的JDK, 可選中Install automatically, Jenkins會自動安裝)
(3) 設定本地Maven的安裝路徑(若不使用本地已有的Maven, 可選中Install automatically, Jenkins會自動安裝)
(4) 設定Maven自定義配置檔案的路徑
(5) 設定本地Git的exe路徑(若不使用本地已有的Git, 可選中Install automatically, Jenkins會自動安裝)
3. 配置SSH
Manage Jenkins --> Configure System 在頁面中找到Publish over SSH, 點選Add按鈕, 然後點選Advanced...按鈕并在Use password authentication, or use a different key前面打鈎, 填寫如下内容:
<1>name: SSH連接配接的名稱
<2>Hostname: 遠端伺服器IP
<3>Username: 遠端伺服器使用者名
<4>Remote Directory: 這個是相對于遠端伺服器的路徑, 具體項目中的SSH配置還需要填寫Source files, Remote Directory, Remove prefix這三項, Jenkins會通過這幾個配置得出最終檔案上傳後遠端伺服器中檔案的路徑. 參考第5(5)<4>步.
<5>Passphrase/Password: 遠端伺服器密碼
<6>Path to key: 遠端伺服器SSH秘鑰路徑
<7>Port: 遠端伺服器SSH連接配接端口号
4. 建立Maven項目
(1) New Item
(2) 選擇Maven Project, 填寫Jenkins項目名稱, 點選OK
5. 項目配置說明
(1) Description: 項目描述
(2) Source Code Management: 配置代碼管理
<1> 使用Git
填寫URL, 使用者名, 密碼, 分支, Jenkins會在安裝目錄下的workspace目錄下一個檔案夾, 檔案夾名稱為目前Jenkins項目的名稱, 這個檔案夾下存放所有下載下傳的代碼.
<2> 使用SVN
Local module directory: 用來指定代碼存放路徑, 這個與Git有所差別, 若不填, 則存放位置與Git類似, 若填寫, 則為預設路徑的相對路徑. 例如: Jenkins安裝目錄為: C:/Program Files (x86)/Jenkins, 目前Jenkins項目名稱為blogs, Local module directory為: all, 則最終代碼存放路徑為: C:/Program Files (x86)/Jenkins/workspace/blogs/all
(3) 自動部署觸發器
<1> 可以不設定, 每次手動點選按鈕進行一鍵部署
<2> 可以在上面的各種情況下設定部署, 上圖選擇的是通過Poll SCM定時部署, H/24 代表每24小時部署一次, 下面還會顯示上一次部署時間和下一次部署時間.
<3> 也可以通過安裝如Github plugin等插件實作每次版本控制器有代碼送出, 就自動部署, 但正式環境不建議這麼幹.
(4) 配置pom檔案路徑與Maven執行指令(Root POM也可以是相對路徑)
(5) 通過SSH上傳檔案至遠端伺服器并執行備份等操作
在Post-build Actions的下拉框中選擇Send build artifacts over SSH
SSHServer的配置如下:
<1>Name: 下拉框選擇第3步配置的SSH伺服器
<2>Source files: 指定需要上傳到遠端伺服器的檔案相對路徑(相對于代碼存放路徑), 例如: 代碼存放路徑為: C:/Program Files (x86)/Jenkins/workspace/all, Source files為: oa_jinnan/target/oa_jinnan.war, 則上傳前檔案的最終路徑為: C:/Program Files (x86)/Jenkins/workspace/all/oa_jinnan/target/oa_jinnan.war.
<3> Remote directory: 參考第5(5)<4>步.
<4>Remove prefix: 需要移除的目錄字首, 如果設定了此項屬性, 則Source files必須以這個目錄字首開頭.
舉例說明該屬性的作用, 假設配置如下:
系統中SSH配置的Remote directory為: /usr/local/test
目前Jenkins項目SSH配置的Source files為: oa_jinnan/target/oa_jinnan.war
目前Jenkins項目SSH配置的Remove prefix為: oa_jinnan/target
目前Jenkins項目SSH配置的Remote directory為: ../projects/blogs
則最終檔案上傳後遠端伺服器中檔案的路徑為: /usr/local/projects/blogs/oa_jinnan.war.
如果不配置目前Jenkins項目SSH配置的Remove prefix, 則最終檔案上傳後遠端伺服器中檔案的路徑為: /usr/local/projects/blogs/oa_jinnan/target/oa_jinnan.war
<5>Exec command: 檔案上傳後, 遠端伺服器要執行的指令
export DATE=$(date "+%Y%m%d_%H%M%S")
sleep 5
cp -rf /usr/local/tomcat/webapps/ROOT /usr/local/bak/oa_$DATE
sh /usr/local/tomcat/bin/shutdown.sh
netstat -apn |grep java |awk '{print $7}' |xargs |awk -F '/' '{print $1}' |xargs kill -9
rm -rf /usr/local/tomcat/webapps/ROOT
cp -rf /usr/local/tomcat/webapps/oa_jinnan/* /usr/local/tomcat/webapps/ROOT
rm -rf /usr/local/tomcat/webapps/oa_jinnan.war /usr/local/tomcat/webapps/oa_jinnan
sh /usr/local/tomcat/bin/startup.sh
可以不用重新開機Tomcat, 因為Tomcat會自動解壓縮, 視需要而定.
export DATE=$(date "+%Y%m%d_%H%M%S")這一句是用來給備份檔案添加年月日時分秒的字尾
備份也可以在檔案上傳之前執行, 在Pre Steps的下拉框中選擇Send files or execute commands Over SSH, 配置方法與上面相同.
netstat -apn |grep java |awk '{print $7}' |xargs |awk -F '/' '{print $1}' |xargs kill -9這一句代表查出java程序的PID, 然後kill掉.