maven是一個項目管理和綜合工具。Maven提供給開發人員構建一個完整的生命週期框架。java
開發團隊能夠自動完成該項目的基礎設施建設,Maven使用標準的目錄結構和默認構建生命週期node
maven是屬於Apache的開源項目linux
maven主要服務於java平臺的構建、依賴管理、項目管理。git
-
2、手動安裝MAVEN
(1)下載maven [root@linux-node2 ~]# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz (2)解壓 [root@linux-node2 ~]# tar -zxvf apache-maven-3.5.2-bin.tar.gz #解壓便可使用 [root@linux-node2 ~]# mv apache-maven-3.5.2 /data/ (3)配置環境變量 [root@linux-node2 bin]# export PATH=$PATH:/data/apache-maven-3.5.2/bin [root@linux-node2 bin]# vim /etc/profile export PATH=$PATH:/data/apache-maven-3.5.2/bin (4)測試 [root@linux-node2 ~]# mvn -v Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00) Maven home: /data/apache-maven-3.5.2 Java version: 1.8.0_151, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-693.5.2.el7.x86_64", arch: "amd64", family: "unix"
-
3、POM文件解析
POM是研發給出的web
Project Object Model,項目對象模型shell
經過xml格式保存的pom.xml文件apache
做用相似ant的build.xml文件,功能更強大vim
該文件用於管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目受權、項目的url、項目的依賴關係等等。框架
-
4、配置系統MAVEN
系統管理-->Global Tool Configurationssh
新增maven
取消自動安裝
填寫maven實際安裝路徑/data/apache-maven-3.5.2
-
4、新建maven項目
(1)新建maven項目 (2)指定源碼文職(git或svn) (3)指定build選項 clean install clean install -Dmaven.test.skip=true (4)指定execute shell java -jar target/testweb-0.0.1-SNAPSHOT.jar
配置maven:
settings.xml是maven的主要配置文件
位置$home/.m2是maven下載的插件的存儲位置
(1)新建maven項目
新建一個項目,選擇構建一個maven項目。若是此處沒有「構建一個maven項目」的選項,須要安裝插件:Maven Integration Plugin
(2)指定源碼位置(git或svn)
(3)指定build選項
clean install
clean install -Dmaven.test.skip=true
(4)指定execute shell
java -jar target/testweb-0.0.1-SNAPSHOT.jar
(5)當即構建
這裏在構建的過程當中,可能會出現插件下載失敗,須要更改maven的插件源,編輯/data/apache-maven-3.5.2/conf/settings.xml
當即構建完成,能夠在/var/lib/jenkins/workspace/Java/下能夠看到拉取的代碼,咱們找到整個項目的的jar包並執行,能夠看到hello world
[root@linux-node2 target]# java -jar testweb-0.0.1-SNAPSHOT.jar Hello World! i am guo2
-
5、將java的代碼發佈到linux-node1上
(1)修改項目的Execte shell設置,再從新構建
rsync -raz --delete --progress target/testweb-0.0.1-SNAPSHOT.jar 192.168.56.11:/opt/ ssh root@192.168.56.11 "java -jar /opt/testweb-0.0.1-SNAPSHOT.jar"
[root@linux-node1 ~]# ll /opt/ total 8 drwxr-xr-x 10 root root 4096 Dec 9 17:08 gitlab -rw-r--r-- 1 root root 2663 Dec 22 14:16 testweb-0.0.1-SNAPSHOT.jar [root@linux-node1 ~]# java -jar /opt/testweb-0.0.1-SNAPSHOT.jar Hello World! i am guo2
到此一個maven項目就完成了!
-
6、maven項目按版本發佈
(1)安裝git parameter plugin插件 (2)任務配置中勾選<參數化構建> (3)選擇git parameter (4)建立變量名 release(自定義) (5)選擇發佈類型: tag:按標籤發佈 branch:按分支發佈 Revison:按修訂發佈
(1)安裝git parameter plugin插件
修改pom.xml中的版本改成v1.0
[root@linux-node2 testing]# vim pom.xml <version>v1.0</version> [root@linux-node2 testing]# git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: pom.xml # no changes added to commit (use "git add" and/or "git commit -a") [root@linux-node2 testing]# git add . [root@linux-node2 testing]# git commit -m "v1.0" [master eed5815] v1.0 1 file changed, 1 insertion(+), 1 deletion(-) [root@linux-node2 testing]# git push origin master Counting objects: 5, done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 281 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) To git@192.168.56.11:java/Java.git 37d2bd1..eed5815 master -> master
給Java項目中的版本修改後打上標籤
此時咱們再修改
[root@linux-node2 testing]# vim src/main/java/com/ghz/testweb/App.java package com.ghz.testweb; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World! i am guo2 v1.0" ); } } [root@linux-node2 testing]# git add . [root@linux-node2 testing]# git commit -m "featrue1" [master 6402300] featrue1 1 file changed, 1 insertion(+), 1 deletion(-) [root@linux-node2 testing]# git push origin master Counting objects: 17, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (9/9), 565 bytes | 0 bytes/s, done. Total 9 (delta 2), reused 0 (delta 0) To git@192.168.56.11:java/Java.git eed5815..6402300 master -> master
此時進行構建,因爲版本修改了,會報錯:
可是咱們每次進行版本的修改後若是都去修改excute shell就顯得太麻煩
(2)任務配置中勾選<參數化構建>
(3)選擇git parameter
(4)建立變量名 release(自定義)
修改源碼管理
(5)選擇發佈類型:
tag:按標籤發佈
(6)對代碼進行屢次修改,並提交
而後再代碼庫中對提交進行tag標記
再在jenkins中查看,便可按照不一樣的版本進行構建,如圖: