GitLab + Jenkins + Maven + Tomcat 實作自動集成、打包、部署
- 一、安裝 Tomcat 服務
- 1.安裝 JDK
- 2.安裝 Tomcat
- 二、在 Jenkins 上安裝 Maven
- 1.安裝 Maven
- 2.創建 Jenkins 任務
- 3.驗證
一、安裝 Tomcat 服務
1.安裝 JDK
- JDK 下載地址:傳送門(需要創建 Oracle 賬號)
[root@Tomcat ~]# ls
anaconda-ks.cfg jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# tar zxf jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg jdk-8u181-linux-x64.tar.gz jdk1.8.0_181
[root@Tomcat ~]# mv jdk1.8.0_181/ /usr/local/java
[root@Tomcat ~]# cat <<END >> /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:"$JAVA_HOME/bin"
END
[root@Tomcat ~]# source /etc/profile
[root@Tomcat ~]# java -version
2.安裝 Tomcat
[root@Tomcat ~]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.32.tar.gz jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# tar zxf apache-tomcat-8.5.32.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.32.tar.gz apache-tomcat-8.5.32 jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# mv apache-tomcat-8.5.32 /usr/local/tomcat
在 Tomcat 服務器上配置(優化執行路徑)
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJAVA_HOME="/usr/local/java"' /usr/local/tomcat/bin/catalina.sh
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJRE_HOME="/usr/local/java/jre"' /usr/local/tomcat/bin/catalina.sh
啟動 Tomcat
[root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh # 啟動 Tomcat 服務
[root@Tomcat ~]# netstat -nlpt | grep 8080 # 查看埠是否開啟

二、在 Jenkins 上安裝 Maven
我們這里主要就是使用 Maven 來將開發寫的 Java 代碼,打包成 war 包后,來使用 Jenkins 將打包好的 war 包,部署到 Tomcat 上,來完成簡單的版本迭代;像一些在云上的專案,基本上都在用云效(云版 Jenkins)
- GitLab 和 Jenkins 安裝教程:傳送門
1.安裝 Maven
我們可以將 Maven 安裝在 Jenkins 的服務器上:
[root@Jenkins ~]# wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
[root@Jenkins ~]# tar xf apache-maven-3.5.4-bin.tar.gz
[root@Jenkins ~]# mv apache-maven-3.5.4 /usr/local/maven
[root@Jenkins ~]# ln -s /usr/local/maven/bin/mvn /usr/bin/
1)配置 Maven 的環境變數
[root@Jenkins ~]# echo "export MAVEN_HOME=/usr/local/maven" >> /etc/profile
[root@Jenkins ~]# echo "export PATH=$PATH:$MAVEN_HOME/bin" >> /etc/profile
[root@Jenkins ~]# source /etc/profile
2)在 Maven 上配置阿里云加速
[root@Jenkins ~]# vim /usr/local/maven/conf/settings.xml
157 </mirror>
158 -->
159 <mirror>
160 <id>aliyun maven</id>
161 <name>aliyun</name>
162 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
163 <mirrorOf>central</mirrorOf>
164 </mirror>
165 </mirrors>
2.創建 Jenkins 任務
1)創建 Jenkins 任務前,需要安裝以下插件:
Git plugin
Maven Release Plug-in
2)進入配置階段




3)開始新建一個 Jenkins 任務

General

原始碼管理


Build

4)撰寫腳本
[root@Jenkins ~]# vim tomcat_update.sh
#!/bin/bash
scp /var/lib/jenkins/workspace/tomcat/gameoflife-web/target/*.war root@192.168.1.3:/usr/local/tomcat/webapps/
ssh root@192.168.1.3 "/usr/local/tomcat/bin/shutdown.sh"
sleep 3
ssh root@192.168.1.3 "/usr/local/tomcat/bin/startup.sh"
5)將代碼上傳到 GitLab 遠程倉庫中
[root@Jenkins ~]# git clone git@192.168.1.1:ZhangSan/test.git
[root@Jenkins ~]# git clone git@github.com:wakaleo/game-of-life.git # 克隆 GitHub 上的代碼
[root@Jenkins ~]# cd test/
[root@Jenkins test]# git rm -rf * # 洗掉原有倉庫上的代碼 (生產環境需慎重考慮)
[root@Jenkins test]# mv ../game-of-life/* . # 將克隆過來的代碼移動到當前目錄
[root@Jenkins test]# git add . # 上傳到暫存區
[root@Jenkins test]# git commit -m 'This is Tomcat of Test' # 將暫存區代碼上傳到本地倉庫
[root@Jenkins test]# git push origin master # 將本地倉庫上傳到遠程倉庫
- 當克隆 GitHub 上代碼出現:
Permission denied (publickey).時,我們只將公鑰上傳到 GitHub 上即可,
6)在 Jenkins 構建 Tomcat 專案

問題(1):如果在構建時出現如下錯誤,原因是因為沒有配置密鑰對,
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
配置 SSH 密鑰對
[root@Jenkins ~]# ssh-keygen -t rsa # 創建密鑰對 (三連回車即可)
[root@Jenkins ~]# ssh-copy-id root@192.168.1.3
問題(2):如果在構建時出現如下錯誤,原因是因為沒有優化執行路徑,
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
在 Tomcat 服務器上配置
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJAVA_HOME="/usr/local/java"' /usr/local/tomcat/bin/catalina.sh
[root@Tomcat ~]# sed -i '/#!\/bin\/sh/aJRE_HOME="/usr/local/java/jre"' /usr/local/tomcat/bin/catalina.sh
3.驗證
訪問: 192.168.1.3:8080/gameoflife/

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/404128.html
標籤:java
下一篇:cgb2111-day07
