Centos7中Jenkins+maven+git持續集成java項目踩坑之路

我是個懶人,之前項目打包更新發布時需要在服務器上一個一個的替換jar包,殺掉進程然後重啓,感覺很麻煩,就撿起來之前放下的jenkins,鼓搗了兩三天,在測試環境上面搭建好了jenkins持續集成,中間踩了很多坑,寫下來總結一下。

1、基本環境安裝&jenkins的安裝

2、初始化jenkins&基本配置

3、在持續集成項目中步驟和遇到的問題

準備好了嗎?開始~~

1、基本環境安裝&jenkins的安裝

1.1、工慾善其事必先利其器,Jenkins 自身採用 Java 開發,所以需要安裝一個 jdk,centos7安裝jdk的步驟我再囉嗦一下:

#查看yum源可以下載的jdk版本

 yum search java | grep jdk

 #選擇jdk版本下載

 yum install -y java-1.8.0-openjdk

 #設置環境變量

 vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64
           export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
           export PATH=$PATH:$JAVA_HOME/bin

保存退出,然後  source /etc/profile  使換將變量生效,然後輸入java -version 查看java環境變量是否安裝成功(如果這種安裝java環境的方法不喜歡那就自行谷歌或者百度吧)。

1.2、由於我的項目是依賴maven的springboot項目並且jenkins打包我使用maven命令打包,所以我又安裝了了maven環境:

Maven下載地址:http://maven.apache.org/download.cgi

找一個自己喜歡的位置,比如/home下面,這裏提一下,下載的maven版本最好個你項目使用的maven版本一致,會避免很多奇奇怪怪的問題。

#下載maven

wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

#解壓 

tar zxf apache-maven-3.5.4-bin.tar.gz

#重命名(最好重命名,方便簡潔)

mv apache-maven-3.5.4 maven3.5.4

#創建個文件夾,保存jar包

mkdir /home/maven3.5.4/repository

更改一下maven的setting.xml文件的配置,本地存儲jar包的位置:  <localRepository>/home/maven3.5.4/repository</localRepository>

改一下鏡像,國內比較快的阿里的比較快:

<mirrors>

<mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>
         
        <mirror>
            <id>ibiblio</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
        </mirror>
        <mirror>
            <id>jboss-public-repository-group</id>
            <mirrorOf>central</mirrorOf>
            <name>JBoss Public Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public</url>
        </mirror>
         
        <mirror>
            <id>central</id>
            <name>Maven Repository Switchboard</name>
            <url>http://repo1.maven.org/maven2/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>repo2</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo2.maven.org/maven2/</url>
        </mirror>
  </mirrors>

#配置環境maven變量

vim /etc/profile

#在底部添加

export MAVEN_HOME=/home/maven3.5.4
           export PATH=$MAVEN_HOME/bin:$PATH

保存退出,然後  source /etc/profile  使換將變量生效,然後輸入mvn -v 查看maven環境變量是否安裝成功。

1.3安裝git
服務器上沒有git環境,我們在服務器上安裝git,命令 : yum install git ,等待安裝完成。

1.4、囉嗦了這麼多,終於到了安裝jenkins了,很簡單,一種是去官網( https://jenkins.io/)下個war包,放到tomcat裏面啓動也成,另外這種安裝方法:

#下載Jenkins庫
           wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 
           #導入key
           rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
           #安裝Jenkins
           yum install -y jenkins
           #啓動Jenkins服務
           systemctl start jenkins 

這樣,jenkins就安裝完事了。不過我們需要對配置文件做一下小小的修改,以root用戶啓動jenkins,不然後面一些命令會提示沒有權限。全局的配置文件在/etc/sysconfig/jenkins,執行命令:

#修改jenkins配置文件

vim /etc/sysconfig/jenkins

   

    把這個屬性改成root用戶啓動。

#重啓jenkins

systemctl restart jenkins

OK,jenkins安裝完成,是不是賊簡單?

2、初始化jenkins &基本配置   

2.1、初始化jenkins

jenkins的默認端口是8080,也可以在配置文件中修改。第一次登陸jenkins的時候,他會有一個私鑰,

把這個密碼複製到網頁中,jenkins就開始正式啓動,初始化了,如果不想太麻煩的話,就直接按照他的推薦來安裝插件,據說jenkins可以集成各種插件,這才造就了他的名聲,點擊jenkins社區推薦安裝的插件就到安裝插件頁面

安裝好插件後會讓你創建一個管理員賬號,這個郵箱是必填的,下面還有個用admin賬號登陸,怎麼選隨你們,一定記好賬號密碼呦~

創建完成,我們就可以開始使用jenkins了,如果一直白屏,可以重啓一下~

2.2、基本環境的設置

登陸jenkins,首頁就是這樣子,現在我們配置一下jdk和maven,這兩個環境我們在第一步已經在服務器上安裝過了。點擊【系統管理】--》【全局工具配置】

首先設置maven的setting.xml:

jdk配置(不要點擊自動安裝,指定一下已經安裝好的jdk就好了):

maven配置(也不要點擊自動安裝):

git配置:

用   whereis git  查看git的地址,

然後在jenkins主頁面–》【系統管理】–》【全局工具配置 】,git裏面的Path to Git executable 中填寫git的地址,(即whereis git的前半部結果)不要選擇自動安裝。

最後點擊保存。項目打包後有的可能需要發送到遠程服務器,所以我們還需要手動安裝兩個插件:

Publish Over SSH     ---》  用於連接遠程服務器

Deploy to container   ---》   把打包的應用發佈到遠程服務器

在【系統管理】--》【插件管理】中:

然後等待插件安裝完就好了,漫長的等待~這個重啓選不選都可以,不放心可以兩個插件都安裝完之後手動重啓。

2.3、添加SSH服務器配置和憑證管理

插件安裝完之後,我們配置一下需要將打好的包遠程發佈的服務器地址,【系統管理】--》【系統設置】,

最下面有SSH Servers,點擊【新增】,【高級】:

Passphrase / Password 是連接服務器的密碼~,設置好了點擊保存就ok。

接下來我們添加鏈接git庫的憑證,參考https://blog.csdn.net/ymxkybqw/article/details/82726973或者https://blog.csdn.net/atec2000/article/details/81562695,第二篇文章講得簡潔明瞭。

3、在持續集成項目中步驟和遇到的問題

現在我們可以開始集成項目了,【新建任務】--》:

輸入名字,選擇創建自由風格的項目,點擊確定,這就算創建了一個項目,接下來是對這個項目的配置:

這些,可選可不選,其實這裏就是對構建的一些設置,我也沒深入研究。

配置項目git地址:

配置項目構建時間:

構建語法小鏈接:https://blog.csdn.net/zzy1078689276/article/details/77520441/

將將時間戳添加到控制檯輸出:

項目的構建過程

一般構建maven項目常會用到這三種,調用頂層maven目標就是在服務器上調用咱們安裝好的maven環境,使用mvn命令打包,常用打包命令:mvn clean install 

也可以根據項目的配置文件制定test還是dev環境的打包。jenkins把代碼拉取下來之後會保存到默認的工作空間,這個在構建項目時看控制檯打印信息就可以看到,當然這個工作空間也可以自己指定位置。

打包完成之後,jenkins的默認工作空間是在/var/lib/jenkins/workspace/下面,如果是在本服務器發佈jar包,那就添加一個shell命令模塊,

我這裏寫了個jar包啓動、停止、重啓的shell腳本,方便使用,這裏把這個腳本貼一下,大家可以瞅瞅:

我箭頭指向的那句話,一定要加,因爲Jenkins任務結束時候可能會自動關掉所有的子進程,這樣咱們剛啓動的項目就會被幹掉,如果使用shell腳本啓動jar包,一定要加上這句話,其他的啓動類型,我給大家一個參考鏈接:https://blog.csdn.net/qq_25559693/article/details/72844340

如果是war包用tomcat啓動,那就可以把war包copy到tomcat的webapp目錄下,然後調用bin目錄下的start.sh和stop.sh就可以。

如果是將包發佈到遠程服務器,那就應該是添加一個:

因爲之前咱們已經配置過遠程SSH Server,這裏就不在贅述,直接看配置:

注意一下,這裏的jar包位置和遠程服務器的目標目錄都不是絕對路徑,在配置SSH Server的時候咱們填寫過一個目錄位置,這裏的目標目錄是填寫的目錄下的文件夾位置。不知道我這樣說大家能明白不~囧。

最後需要清理一下工作空間,把緩存的信息清除掉:

只需要在構建成功之後clean一下就ok,那現在一個項目的構建已經完事了,現在構建一下,讓我們看看控制檯的輸出信息

立即構建~並且查看控制檯打印的信息:

當然,我這裏給大家展示的是成功的例子,其實有什麼錯誤,他都會在控制檯打印出來,包括你的shell命令寫錯之類的小錯,跟平時的maven打包沒啥兩樣,至此,一整個項目就構建完成了。

記錄一下學習jenkins的過程與大家分享,雖然我還有好多配置沒有弄清楚和沒用到,jenkins還可以集成sona代碼質量檢測、swagger等等插件。如果有什麼說的不對的地方還希望大家能指正批評,互相學習共同進步!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章