Jenkins如何構(gòu)建Maven項(xiàng)目

一、前言

Maven是一個(gè)項(xiàng)目管理和綜合工具蛉签,Maven提供給開發(fā)人員構(gòu)建一個(gè)完整的生命周期框架胡陪。許多 Apache Jakarta 項(xiàng)目發(fā)文時(shí)使用 Maven , Maven能夠很方便的幫你管理項(xiàng)目報(bào)告正蛙,生成站點(diǎn)督弓,管理JAR文件 营曼。

二乒验、在Jenkins主機(jī)上安裝Maven

1、下載軟件

cd /tmp
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

2蒂阱、解壓壓縮包

tar xf apache-maven-3.3.9-bin.tar.gz -C /opt
ln -s apache-maven-3.3.9 maven

3锻全、添加命令到環(huán)境變量

echo "export PATH=$PATH:/opt/maven/bin" >>/etc/profile
source /etc/profile

4、將依賴源倉(cāng)庫(kù)地址改為阿里云地址

vim /opt/maven/conf/settings.xml
#在158行下方加入以下命令
<mirror> 
<id>nexus-aliyun</id> 
<mirrorOf>*</mirrorOf> 
<name>Nexus aliyun</name> 
<url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

5录煤、使用一個(gè)簡(jiǎn)單Java代碼測(cè)試

tar xf hello-world-war.tar.gz
cd hello-world-war/
mvn clean
mvn package
#當(dāng)有target目錄生成及成功

三鳄厌、使用Nexus私服作為依賴源倉(cāng)庫(kù)

1、下載安裝JDK

https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/rpm/centos7-x86_64/Packages/      #清華源JDK下載地址
rpm -ivh jdk-8u181-linux-x64.rpm

2妈踊、下載安裝Nexus

官網(wǎng)地址: https://www.sonatype.com/download‐oss‐sonatype

tar xf nexus-3.23.0-03-unix.tar.gz
ln -s nexus-3.23.0-03 nexus

3了嚎、啟動(dòng)Nexus

/opt/nexus/bin/nexus start

4、進(jìn)入網(wǎng)頁(yè)初始化

http://xxx.xxx.xxx.xxx:8081

密碼存儲(chǔ)文件/opt/sonatype-work/nexus3/admin.password

四廊营、修改Maven依賴源地址為Nexus

1歪泳、修改Maven配置文件

vim /opt/maven/conf/settings.xml
#在132行下方加入以下命令
  <server>   
    <id>my-nexus-releases</id>   
    <username>admin</username>   
    <password>admin123</password>   
  </server>   
  <server>   
    <id>my-nexus-snapshot</id>   
    <username>admin</username>   
    <password>admin123</password>   
  </server>
  
#在158行下方加入以下命令
<mirror>
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <url>http://10.0.0.9:8081/repository/maven-public/</url>
</mirror>

#在247行下方加入以下命令
<profile>
  <id>nexus</id>
  <repositories>
    <repository>
      <id>central</id>
      <url>http://10.0.0.9:8081/repository/maven-public/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
  </repositories>
 <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <url>http://10.0.0.9:8081/repository/maven-public/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
  </pluginRepositories>
</profile>

#在256行下方加入以下命令
<activeProfiles>
  <activeProfile>nexus</activeProfile>
</activeProfiles>

2、測(cè)試是否是通過(guò)Nexus地址下載

cd /tmp/hello-world-war
mvn clean
mvn package

五露筒、Jenkins創(chuàng)建Maven項(xiàng)目

1呐伞、在GitLab上新建一個(gè)倉(cāng)庫(kù)

2、Jenkins創(chuàng)建Maven項(xiàng)目

3慎式、配置Maven項(xiàng)目

六伶氢、推送Java代碼到GitLab

git clone git@10.0.0.200:dev/java.git
cd /tmp
tar xf jeesns.tar.gz
mv jeesns/* /root/java/
git add .
git commit -m "new_code"
git push origin master

七趟径、部署一個(gè)Tomcat環(huán)境測(cè)試

軟件下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz

1、下載安裝JDK

cd /opt
rpm -ivh jdk-8u181-linux-x64.rpm

2癣防、下載解壓壓縮包

cd /opt
tar xf apache-tomcat-8.5.57.tar.gz
ln -s apache-tomcat-8.5.57 tomcat

3蜗巧、優(yōu)化Tomcat啟動(dòng)加速

vim /usr/java/jdk1.8.0_181-amd64/jre/lib/security/java.security
修改117行為:securerandom.source=file:/dev/urandom

4、啟動(dòng)服務(wù)

/opt/tomcat/bin/startup.sh

5蕾盯、安裝MariaDB數(shù)據(jù)庫(kù)

yum -y install mariadb-server
systemctl start mariadb
systemctl enable mariadb
mysqladmin -u root password '123456'
mysql -u root -p
create database jeesns;

6惧蛹、將代碼文件的數(shù)據(jù)庫(kù)信息導(dǎo)入數(shù)據(jù)庫(kù)

[root@jenkins ~]# cd /var/lib/jenkins/workspace/Maven/jeesns-web/database/
[root@jenkins database]# scp jeesns.sql 172.16.1.7:/tmp
[root@web01 opt]# mysql -u root -pxxxxxx jeesns </tmp/jeesns.sql

八、Jenkins設(shè)置項(xiàng)目構(gòu)建命令

九刑枝、測(cè)試項(xiàng)目是否成功

十香嗓、Maven項(xiàng)目Java代碼上線腳本

vim /server/scripts/jenkins.sh
#!/bin/bash

CODEDIR=/opt/tomcat/webapps
IP=172.16.1.7

TAR_CODE(){
  cd ${WORKSPACE}/target 
  scp *.war ${IP}:${CODEDIR}/${git_version}.war
}

JY_CODE(){
  ssh ${IP} "cd ${CODEDIR} && unzip ${git_version}.war -d ${git_version}"
}

CREATE_LN(){
  ssh ${IP} "cd ${CODEDIR} && rm -rf ROOT && ln -s ${git_version} ROOT"
}

RESTART(){
  ssh ${IP} "/opt/tomcat/bin/shutdown.sh && /opt/tomcat/bin/startup.sh"
}

main(){
  if [[ "${choice}" == "publish" ]];then
    if [[ "$GIT_COMMIT" == "GIT_PREVIOUS_SUCCESSFUL_COMMIT" ]];then
      echo "構(gòu)建失敗,該版本已發(fā)布"
    else
      TAR_CODE
      JY_CODE      
      CREATE_LN
      RESTART
    fi
  else
      CREATE_LN
      RESTART
  fi
}
main
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末装畅,一起剝皮案震驚了整個(gè)濱河市靠娱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掠兄,老刑警劉巖像云,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蚂夕,居然都是意外死亡迅诬,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門婿牍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)侈贷,“玉大人,你說(shuō)我怎么就攤上這事等脂∏温” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵上遥,是天一觀的道長(zhǎng)搏屑。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粉楚,這世上最難降的妖魔是什么辣恋? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮模软,結(jié)果婚禮上伟骨,老公的妹妹穿的比我還像新娘。我一直安慰自己撵摆,他們只是感情好底靠,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著特铝,像睡著了一般暑中。 火紅的嫁衣襯著肌膚如雪壹瘟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天鳄逾,我揣著相機(jī)與錄音稻轨,去河邊找鬼。 笑死雕凹,一個(gè)胖子當(dāng)著我的面吹牛殴俱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枚抵,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼线欲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了汽摹?” 一聲冷哼從身側(cè)響起李丰,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逼泣,沒(méi)想到半個(gè)月后趴泌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拉庶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年嗜憔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氏仗。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吉捶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出廓鞠,到底是詐尸還是另有隱情帚稠,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布床佳,位于F島的核電站,受9級(jí)特大地震影響榄审,放射性物質(zhì)發(fā)生泄漏砌们。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一搁进、第九天 我趴在偏房一處隱蔽的房頂上張望浪感。 院中可真熱鬧,春花似錦饼问、人聲如沸影兽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)峻堰。三九已至讹开,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捐名,已是汗流浹背旦万。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镶蹋,地道東北人成艘。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像贺归,于是被迫代替她去往敵國(guó)和親淆两。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344