亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Jenkins配置Git+Maven的自動化構建的方法

發布時間:2020-09-19 23:19:53 來源:腳本之家 閱讀:178 作者:徐劉根 欄目:編程語言

背景

最近安裝Jenkins,參照網上的各種資料進行嘗試,折騰了好久,但是查找了這么多資料,相似度在90%以上!!!,相同的安裝過程,測試了幾臺機器,未曾成功,不得不感慨自己能力有限,最終慢慢摸索,形成思路,現分享給大家,希望大家在安裝的時候少走彎路。

PS:本人很痛恨那種粘貼復制,毫無思考的博主,本想著拿著解決問題的心態,但結果還是一樣,不但浪費了大家的時間,還浪費了大家的感情,所以,我把我遇到的問題和解決的方式記錄下來和大家分享。

知識背景

首先需要理解的是,Jenkins是幫我們將代碼進行統一的編譯打包、還可以放到tomcat容器中進行發布。

意思是我們通過配置,將以前:編譯、打包、上傳、部署到Tomcat中的過程交由Jenkins,Jenkins通過給定的代碼地址URL,將代碼拉取到其“宿主服務器”(這是我個人的稱呼,在下邊會用到,就是Jenkins的安裝位置),進行編譯、打包和發布到容器中。

因此我們可以注意到的是,在Jenkins的宿主服務器中必須要有可以進行:代碼clone(Git)、代碼編譯(Maven)、代碼運行(Tomcat)的基本環境,其他文章上來就是安裝jenkins,忽略了一些基本的配置。

下邊就開始講解各部分的安裝過程,如果已經安裝某一步的環境,則可以以此進行下一步。

一、Git的安裝

1、安裝依賴

sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

注意:perl-ExtUtils-MakeMaker 也是這些安裝列表中的一員,不要因為顯示的換行造成大家認為是兩條執行命令。

2、下載Git

選擇一個目錄,存放下載的git,例如我的是:/home/xuliugen/tmp,大家可以根據需求到官網下載相應的版本

wget https://github.com/git/git/archive/v2.3.0.zip

3、解壓git

下載之后是這樣的,不要感到奇怪,直接解壓即可

使用Jenkins配置Git+Maven的自動化構建的方法

因為下載的是一個zip,所以使用命令將其解壓到git目錄下:

#參數-d 后邊的是解壓到的目錄
unzip v2.3.0 -d git 

4、編譯安裝git

進入git目錄

使用Jenkins配置Git+Maven的自動化構建的方法

將其安裝在“/usr/local/git”目錄下,命令如下:

make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install

5、配置Git

sudo vim /etc/profile #編輯profile文件

然后而已看到這個文件已經有很多配置了,只需要在最下邊添加git的路徑即可:

export PATH=/usr/local/git/bin:$PATH

將這段話放在最后邊,然后使用source命令應用修改:

source /etc/profile

6、檢驗Git是否安裝成功

git --version

使用Jenkins配置Git+Maven的自動化構建的方法

二、Maven安裝

1、下載和解壓Maven

Maven的安裝包下載可以根據需求找到合適的版本,解壓之后,我的位置是:

使用Jenkins配置Git+Maven的自動化構建的方法

2、配置Maven

編輯:~/.bash_profile文件,根據注釋相應的修改即可

# maven所在的目錄 
export M2_HOME=/home/xuliugen/software/maven/apache-maven-3.3.3
# maven bin所在的目錄 
export M2=$M2_HOME/bin
# 將maven bin加到PATH變量中 
export PATH=$M2:$PATH
# 配置JAVA_HOME所在的目錄,注意這個目錄下應該有bin文件夾,bin下應該有java等命令 
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0

然后運行:source ~/.bash_profile 應用修改

3、查看Maven是否安裝成功

使用:mvn -version 即可查看結果

使用Jenkins配置Git+Maven的自動化構建的方法

三、Jenkins的部署

Jenkins的安裝很簡單,直接將war放到容器中進行運行即可

1、將jenkins放到Tomcat中并解壓,啟動Tomcat,成功啟動之后訪問ip和端口如下:

使用Jenkins配置Git+Maven的自動化構建的方法

啟動成功之后,進入的界面如上,表示啟動成功。

2、安裝插件

在進行配置之前,由于使用的是Git拉去代碼的方式,所以要首先安裝插件

使用Jenkins配置Git+Maven的自動化構建的方法

找到:插件管理 在“可選插件”界面使用ctrl+f 搜索:Deploy to container Plugin 插件(這個是支持將代碼部署到tomcat容器的)

使用Jenkins配置Git+Maven的自動化構建的方法

勾選,點擊下邊的按鈕:直接安裝,這個可能時間較久,等待即可。

使用Jenkins配置Git+Maven的自動化構建的方法

安裝完之后,如果勾選了:安裝完成后重啟jenkins 那么會重啟jenkins。

然后安裝:GIT plugin,何上邊的步驟一樣,如果使用上述的方式,由于網絡的原因,可能會安裝失敗,這就需要我們使用另一種方式進行安裝。

使用同樣的方式在“可選插件”中搜索GIT plugin,找到之后點擊藍色鏈接(最好右鍵在新窗口中打開,放置覆蓋jenkins界面)

使用Jenkins配置Git+Maven的自動化構建的方法

會跳轉到Git Plugin的插件信息地址:

使用Jenkins配置Git+Maven的自動化構建的方法

可以看到Plugin ID為:git,然后在:http://updates.jenkins-ci.org/download/plugins/ 這地地方搜索(ctrl+f)即可找到,點進去,選擇一個版本進行下載:

使用Jenkins配置Git+Maven的自動化構建的方法

使用Jenkins配置Git+Maven的自動化構建的方法

點進去下載的是一個hpi文件

然后同樣的在:系統管理–管理插件–高級Tab中,下拉可以看到上傳插件,然后選擇文件上傳剛才下載的hpi文件,即可,上傳完之后,會自動安裝。上述安裝Deploy to container Plugin的方式也可以采用這種方式。

都安裝完之后,在已安裝Tab中可以看到剛安裝的插件:

使用Jenkins配置Git+Maven的自動化構建的方法

3、進行配置

看到上圖中的左側有一個:系統管理 點擊去

使用Jenkins配置Git+Maven的自動化構建的方法

上邊的第一行黃色信息,表示編碼問題,在Tomcat–>conf–>server.xml文件中修改即可

使用Jenkins配置Git+Maven的自動化構建的方法

4、Jenkins系統設置

點擊:系統設置這里沒有強調的都設置為默認即可。

(注意:版本2.60.2是在:系統設置–>Global Tool Configuration下)

(1)JDK,別名是任意的,選擇自己jdk的位置,jenkins推薦使用sun jdk而不是openjdk

使用Jenkins配置Git+Maven的自動化構建的方法

(2)Git 的配置

使用Jenkins配置Git+Maven的自動化構建的方法

注意這里的git位置,是可執行文件的地址,即是git–bin–下的可執行文件 git的目錄(類似于java中bin下的java可執行文件位置)

如果填錯,后期回報無法找到git等錯誤(最下邊,其他問題下的第三個問題),請大家注意!

(3)Ant的配置

由于本次并沒有用到Ant,不做配置,大家可以根據配置進行設置

(4)Maven的配置,選擇自己maven的存放位置

使用Jenkins配置Git+Maven的自動化構建的方法

(5)Jenkins Location

使用Jenkins配置Git+Maven的自動化構建的方法

這里配置的是ip加端口和一個路徑名稱,郵箱要進行設定,后期會發送jenkins執行的結果到郵件中

(6)郵件通知

使用Jenkins配置Git+Maven的自動化構建的方法

這里我配置的QQ郵箱,大家根據情況進行設置相應的smtp服務器,用戶名、密碼分別為自己的QQ郵箱何密碼,如果不進行設置,后期jenkins構建項目的時候會報錯,報錯信息很好理解也很好找到是沒有配置郵件的問題。

首先,要保證郵件的smtp和pop是開啟狀態的,這樣的話才可以通過驗證:

使用Jenkins配置Git+Maven的自動化構建的方法

最后點擊下邊的應用、保存即可

5、Configure Global Security

然后回到系統管理,看到Configure Global Security 點擊進去,根據下邊進行配置即可

使用Jenkins配置Git+Maven的自動化構建的方法

點擊應用 保存之后,然后在屏幕的右上角,有一個登錄-注冊 ,點擊注冊即可實現用戶的登錄。

使用Jenkins配置Git+Maven的自動化構建的方法

這里,如果是公司內網的話,或者最后搭建的jenkins是公司使用,那么最好用戶名和密碼為公司的賬戶密碼,郵件也是公司的郵件,這樣的話方便后期的操作。

至此Jenkins的基本配置完成。

創建Job

1、創建項目

點擊登錄之后,會看到下邊的界面中:My Views

使用Jenkins配置Git+Maven的自動化構建的方法

點擊進去

使用Jenkins配置Git+Maven的自動化構建的方法

點擊:創建一個新任務

使用Jenkins配置Git+Maven的自動化構建的方法

選擇maven項目,點擊OK,這里的Item名稱是后邊需要用到的,下邊的配置也有用到這個的,大家可以很好的對應。

2、進行項目的配置

(1)源碼管理選擇Git,這個時候添加url之后,下邊會報錯,顯示讓去認證,認證即可(其他的安裝中又遇到這個問題),如果認證失敗,請下載認證Github Authentication plugin插件,這個在插件管理的可選插件中搜索安裝。

我這里的rul是我在gitos上的一個項目,credentials是我在gitos上的用戶名和密碼認證。

使用Jenkins配置Git+Maven的自動化構建的方法

(2)構建觸發器,就是什么時候執行jenkins的自動化部署

使用Jenkins配置Git+Maven的自動化構建的方法

選擇第一個,其他的基本是定時執行什么的,大家可以自行查找,查看如何設置,根據需要進行配置

(3)Post Steps

使用Jenkins配置Git+Maven的自動化構建的方法

選擇上圖中的,然后下邊 的Execute shell如下,腳本的編寫在下邊進行了詳細的說明:

使用Jenkins配置Git+Maven的自動化構建的方法

#!/bin/bash 
#copy file and restart tomcat 

export JAVA_HOME=/data/home/server/jdk
export CATALINA_HOME=/home/xuliugen/dubbo-provider
export CATALINA_BASE=/home/xuliugen/dubbo-provider
export BUILD_ID=dontKillMe

tomcat_path=/home/xuliugen/dubbo-provider
project=dubbo-provider
war_name=dubbo-provider.war 
war_path=http://132.153.131.237/:8022/jenkins/job/ManenDemo/ws/targetserver_port=8082 
file_path=~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target

$tomcat_path/bin/shutdown.sh 

sleep 3s 

echo "rm -rf ${tomcat_path}/webapps/ROOT/*"

rm -rf ${tomcat_path}/webapps/ROOT/*

cd $file_path

cp ${war_name} ${tomcat_path}/webapps/ROOT/

cd $tomcat_path/webapps/ROOT/

unzip ${war_name}

rm -rf ${war_name}

sleep 5s 

#$tomcat_path/bin/startup.sh

cd $tomcat_path/bin/
./startup.sh

echo "server restarted"

(4)郵件通知

使用Jenkins配置Git+Maven的自動化構建的方法

至此基本設置完畢,點擊應用、保存

(5)立即構建

點擊左上角的立即構建

使用Jenkins配置Git+Maven的自動化構建的方法

然后看到下邊的Build History 點擊藍色的進去,會進入Console

使用Jenkins配置Git+Maven的自動化構建的方法

下邊是進行jar的下載,會下載到宿主服務器的maven倉庫中:

使用Jenkins配置Git+Maven的自動化構建的方法

下邊的信息表示項目編譯通過:

使用Jenkins配置Git+Maven的自動化構建的方法

下邊是運行腳本的信息:

使用Jenkins配置Git+Maven的自動化構建的方法

腳本的分析

在Jenkins的服務器上查看:

使用Jenkins配置Git+Maven的自動化構建的方法

使用Jenkins配置Git+Maven的自動化構建的方法

可以看到在/root/.jenkins這個目錄,實際存放了Jenkins拉取Git代碼之后編譯好war的位置,到此,大家也許都該明白了,編譯后的位置就在這里啊!然后,接著是部署到宿主服務器的Tomcat容器中,如何將編譯好的war放到tomcat中,這就需要腳本來完成,也是上述過程中配置的過程,下邊對每一行進行分析。

首先我們應該明白,將編譯好的war放到tomcat容器中,我們首先要知道這兩個的位置:編譯后war的位置和目標容器的位置,很顯然我們是知道的。

1、腳本文件的頭,這個沒得說

#!/bin/bash 

2、環境變量設置

export JAVA_HOME=/data/home/server/jdk
export CATALINA_HOME=/home/xuliugen/dubbo-provider
export CATALINA_BASE=/home/xuliugen/dubbo-provider
export BUILD_ID=dontKillMe

上邊的各個位置,大家也許都知道,CATALINA_HOME和CATALINA_BASE的位置就是Tomcat容器的位置,這里根據需求我將Tomcat容器的名字改為dubbo-provider了,如果改成/home/xuliugen/tomcat是不是更好理解。

export BUILD_ID=dontKillMe這一句很重要,因為該job啟動完后執行下一job,jenkins直接把tomcat進程殺了,所以無論腳本中怎么寫了啟動tomcat的命令,他是不會啟動的。雖然上述截圖中顯示了Tomcat started、server restarted但是訪問項目地址是訪問不了的,這在:其他問題的第二個說明了這個問題。

3、其他路徑位置

tomcat_path=/home/xuliugen/dubbo-provider #我的Tomcat位置
project=dubbo-provider #我的項目編譯的名稱
war_name=dubbo-provider.war #最后打包的war名稱
war_path=http://132.153.131.237/:8022/jenkins/job/ManenDemo/ws/targetserver_port=8082 #宿主服務器的ip何端口
file_path=~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target #編譯好的war包存放地址

這個:war_path 其實也就是Jenkins的宿主服務器位置IP,端口為jenkins運行的端口,大家只需要將ip地址端口ManenDemo換成自己的即可;

file_path:就是Jenkins幫我們編譯好的項目war的位置,上圖中大家也可以看到,并且大家不可以完全按照上邊的路徑,要找到自己宿主服務器上實際war的位置,進行設置。

4、耳熟能詳的執行命令

下邊就是我們在使用原始方式,部署war的命令,大家很簡單的可以理解,其中:

注意:個人寫腳本的能力有限,所以我是假設項目已經在運行的情況下,因此我上來就是先關閉Tomcat,(正確的方式,應該判斷端口是否打開,如果本身tomcat未啟動,我的這種情況,會在Jenkins的Console中報拒絕連接的問題,如下圖)。

使用Jenkins配置Git+Maven的自動化構建的方法

另外用到了sleep 3s 這個可以讓線程休眠一下,這樣的話可以看一下tomcat的日志信息。

下邊的腳本就是刪除原來容器中的文件,然后將編譯好的war移動到容器中,解壓。運行tomcat。

$tomcat_path/bin/shutdown.sh 
sleep 3s 
echo "rm -rf ${tomcat_path}/webapps/ROOT/*"
rm -rf ${tomcat_path}/webapps/ROOT/*
cd $file_path
cp ${war_name} ${tomcat_path}/webapps/ROOT/
cd $tomcat_path/webapps/ROOT/
unzip ${war_name}
rm -rf ${war_name}
sleep 5s 
cd $tomcat_path/bin/
./startup.sh
echo "server restarted"

將項目布署到遠程Tomcat

上述創建項目,可以看出是在本地進行執行的,也就是進行編譯后執行的Tomcat是何Jenkins的宿主服務器是在一起的,這很顯然不符合我們常規的公司及其部署的方案,通常是將編譯之后的代碼在運行到其他的Tomcat服務器中的,下邊有兩種方式,將編譯之后的項目部署到遠程服務器中。

1、使用腳本的方式部署到遠程服務器

2、使用Deploy to container Plugin插件部署到遠程服務器

上述的開始階段就安裝了這個插件,下邊就開始發揮其作用。

使用Jenkins配置Git+Maven的自動化構建的方法

在創建的Job左側點擊設置,其他配置何在遠程搭建項目是一致的,不同的是在這個地方:

使用Jenkins配置Git+Maven的自動化構建的方法

以前我們在編譯之后,將編譯后的通過腳本補助到Jenkins的宿主服務器,使用插件,就不需要這種方式了。

使用Jenkins配置Git+Maven的自動化構建的方法

還有就是的在構建之后,將編譯后的文件**/target/dubbo-provider.war(就是上邊的~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target目錄)部署到下邊的遠程Tomcat容器中;這里Containers的用戶名和密碼是Tomcat管理員的賬戶密碼,Tomcat URL 就是你需要進行部署的遠程Tomcat服務器的ip和端口。

這里需要進行設置的是遠程Tomcat的管理員信息,修改遠程Tomcat容器下的conf–tomcat-users.xml文件,在內添加下邊的內容:

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager,manager-script,manager-gui"/>

即可實現遠程的訪問,測試是可以通過的,但是有一個問題,通過這種方式,只將war復制到了wenapps下:

使用Jenkins配置Git+Maven的自動化構建的方法

因此這種方式的話,我們訪問的時候必須是ip、端口和項目名,例如:

http://115.159.151.247:8030/dubbo-provider/

當然這種方式 也是在實際的應用中不提倡的,解決方式就是修改Tomcat默認的訪問路徑即可,設置Tomcat–conf–server.xml文件如下:

在Host節點之間添加:

<Context path="" docBase="dubbo-provider" debug="0" reloadable="true" />

使用Jenkins配置Git+Maven的自動化構建的方法

或者在docBase里邊輸入項目的絕對路徑,例如我的:

<Context path="" docBase="/home/xuliugen/dubbo-provider/webapps/dubbo-provider" debug="0" reloadable="true" />

然后重啟Tomcat,這樣的話,http://ip:8030/dubbo-provider/ 和http://ip:8030這兩種方式都可以訪問到該項目。

使用Jenkins配置Git+Maven的自動化構建的方法

使用Jenkins配置Git+Maven的自動化構建的方法

后期補充:

上邊的是設置Context Path,使得默認部署的時候會在webapps下作為一個單獨的容器,其實可以直接將其設置為/ ,因為Tomcat默認的訪問路徑指向的就是ROOT,所以如果設置為ROOT的話就不需要在進行上邊的設置了,如下:

使用Jenkins配置Git+Maven的自動化構建的方法

自動部署war包到ROOT路徑,也就是網站的根目錄時,deploy插件的”Context path”要填寫:”/”,而不是”ROOT”或者”/ROOT”,不然自動部署會失敗,有類似以下錯誤:

使用Jenkins配置Git+Maven的自動化構建的方法

其他問題

1、部署項目的時候報錯

使用Jenkins配置Git+Maven的自動化構建的方法

這個大家很好理解,是因為下載jar失敗的問題,由于是第一次使用Maven,需要第一次下載很多jar到Maven倉庫中,由于網絡的問題下載失敗,大家可以多次構建讓他重新下載,或者直接到:https://repo.maven.apache.org/maven2 根據報錯的jar,在maven2中找到自己缺失的jar,然后在/root/.m2/repository 相應的位置添加jar即可。

2、編寫腳本文件啟動tomcat但是項目仍然運行不起來

就是上邊說道的問題了:

添加:export BUILD_ID=dontKillMe,因為該job啟動完后執行下一job,jenkins直接把tomcat進程殺了,所以無論腳本中怎么寫了啟動tomcat的命令,他是不會啟動的。

3、遇到下邊的問題

使用Jenkins配置Git+Maven的自動化構建的方法

這就是在系統設置的時候,設置的git的地址不對,上述已經說明了,應該是git的可執行文件的地址,如果只是git的目錄,是無法找到git這個可執行文件的,如下:

使用Jenkins配置Git+Maven的自動化構建的方法

可以看出使用的是這個:/usr/local/git/bin/git 進行git倉庫的配置何代碼的拉取,因此這設置git的目錄,jenkins默認是不會找bin目錄下的git可執行文件的。

至此,Jenkins的部署完成,希望對大家有所幫助。也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

楚雄市| 尚义县| 大荔县| 宜丰县| 汾西县| 平泉县| 甘肃省| 莎车县| 龙里县| 舞阳县| 瑞安市| 二连浩特市| 铜山县| 克拉玛依市| 共和县| 长沙市| 富川| 平度市| 洪泽县| 易门县| 仙游县| 格尔木市| 乌兰浩特市| 马关县| 德兴市| 南召县| 修文县| 芷江| 怀安县| 会泽县| 稻城县| 博兴县| 尉氏县| 普陀区| 高尔夫| 若尔盖县| 色达县| 临海市| 观塘区| 雅江县| 颍上县|