溫馨提示×

溫馨提示×

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

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

安裝部署Maven的教程

發(fā)布時間:2020-05-29 12:06:17 來源:億速云 閱讀:230 作者:Leah 欄目:系統(tǒng)運維

這篇文章給大家分享的是安裝部署Maven的方法,相信大部分人都還沒學會怎么部署,為了讓大家學會,給大家總結了以下內(nèi)容,話不多說,一起往下看吧。

安裝Maven需依賴java環(huán)境,所以應實現(xiàn)部署jdk環(huán)境!

1)配置jdk環(huán)境

[root@maven ~]#  rpm -qa | grep jdk             //查詢本機默認JDK環(huán)境
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
copy-jdk-configs-3.3-2.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
[root@maven ~]# yum -y remove java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
[root@maven ~]# yum -y remove java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
//將原本的jdk-headless包卸載
[root@maven ~]# tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local                //將提供的JDK軟件包進行解壓
[root@maven ~]# vim /etc/profile                //編寫系統(tǒng)環(huán)境變量,在末尾添加以下內(nèi)容
        export JAVA_HOME=/usr/local/jdk1.8.0_211                     //指定Java安裝路徑
        export JRE_HOME=/usr/local/jdk1.8.0_211/jre                  //Java運行環(huán)境
        export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar              //聲明Java中的類,類就是一類事務的屬性
        export PATH=$JAVA_HOME/bin/:$JRE_HOME/bin/:$PATH             //將定義的變量添加到系統(tǒng)環(huán)境變量中
[root@maven ~]# source /etc/profile                    //重新加載系統(tǒng)環(huán)境變量文件
[root@maven ~]#java -version                           //查詢支持的Java版本信息
java version "1.8.0_211"                              //符合要求
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

2)部署Maven

[root@maven ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
#可直接使用網(wǎng)盤中的apache-maven-3.6.1-bin.tar.gz
[root@maven ~]# tar zxf apache-maven-3.6.3-bin.tar.gz -C /usr/src
[root@maven ~]# mv /usr/src/apache-maven-3.6.3/ /usr/local/maven
[root@maven ~]# vim /etc/profile           #添加以下內(nèi)容
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
[root@maven ~]# source /etc/profile
[root@maven ~]# mvn -v        #出現(xiàn)下面內(nèi)容就部署成功了(因為這是二進制的方式部署)
Apache Maven 3.6.3 (cecedd343002696d0abb0b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_211/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
1)配置使用阿里云倉庫地址

由于使用maven官網(wǎng)的地址。下載較慢,所以直接更改為阿里云提供的maven倉庫地址!

[root@maven ~]# vim /usr/local/maven/conf/settings.xml
#定位到158行,填寫一下內(nèi)容
    <mirror>
      <id>aliyun</id>
      <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
      <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>          #必須寫在這個標簽里面
#mirror就是鏡像,主要提供一個方便地切換遠程倉庫地址的途徑
#<mirrorOf>central</mirrorOf>里是要替代的倉庫的id。代理原有倉庫,如果填寫*表示替換所有倉庫   
2)構建項目進行測試
[root@maven ~]# mkdir /tmp/testdir
[root@maven ~]# cd /tmp/testdir/
#執(zhí)行下面命令進行測試
[root@maven testdir]# mvn archetype:generate -DgroupId=com.lzj.maven.quickstart -DartifactIdk=testapp -DarchetypeArtifactId=maven-archetype-quickstart
#創(chuàng)建一個maven項目(Java類型),可加-DinteractiveMode=false取消交互過程
                     ...........................#省略部分內(nèi)容
Define value for property 'artifactId': testapp      #需手動指定項目名稱,可自定義,接下來保持默認即可!
[INFO] BUILD SUCCESS        #當出現(xiàn)這行提示信息,則表示構建成功
#上述命令解釋如下:
# archetype:generate:創(chuàng)建一個簡單的java項目;
# archetype 也就是原型,是一個 Maven 插件,準確說是一個項目模板,它的任務是根據(jù)模板創(chuàng)建一個項目結構。
#使用 quickstart 原型插件創(chuàng)建一個簡單的 java 應用程序
# -DgroupId:組織名,公司網(wǎng)址的反寫(反向域名)+項目名稱;
# -DartifactIdk:項目名或者模塊名;
# - DarchetypeArtifactId:指定 ArchetypeId,maven-archetype-quickstart,創(chuàng)建一個簡單的 Java 應用;
# -DinteractiveMode: 是否使用交互模式。
3)生成的POM文件參數(shù)解釋

當前目錄生成的內(nèi)容:

[root@maven testdir]# ls   #上述命令執(zhí)行成功后,會在當前目錄下生成以項目名稱命名的目錄
testapp
[root@maven testdir]# cd testapp/      #進入生成的目錄
[root@maven testapp]# ls                #查看目錄下生成的文件
pom.xml  src
[root@maven testapp]# cat pom.xml         #pom文件參數(shù)解釋
project: 根,這是對Project添加一些根元素的約束信息
modelversion:指定當前maven模型的版本號
grouopId:應該是公司名或者組織名。一般來說groupID有三個部分組成,每個部分之間以“.”分隔,第一部分是項目的用途,比如用于商業(yè)的就是com,用于非商業(yè)盈利性組織的就是org,第二部分是公司名,比如tentxun/baidu/alibaba,第三部分是你的項目名
artifactId:可以認為是maven構建的項目名,比如你的項目中有子項目,就可以使用“項目名-子項目的命名方式
packaging: 指定生成的格式(jar/war/rar/pom/ear)
version:版本號,SNAPSHOT意味快照,說明該項目還在開發(fā)中,是不穩(wěn)定的版本
name:項目的名稱, Maven產(chǎn)生的文檔用
url:項目主頁的url,Maven產(chǎn)生的文檔用
dependencies標簽:指定開發(fā)構建(jar包)
JUnit是一個Java語言的單元測試框架

用戶宿主目錄下也會生成本地倉庫:

[root@Maven testdir]# ls ~/.m2/repository/
antlr  asm  commons-codec  commons-collections  commons-io  commons-lang  jdom  net  org
4)Maven配置文件

Maven 的配置文件名稱為:setting.xml。它被存放在兩個地方:
1)/usr/local/maven/conf/settings.xml #安裝的目錄;
2)~/.m2/settings.xml #用戶的家目錄;

其中,安裝目錄配置又是全局配置,用戶目錄配置被稱為用戶配置。如果兩者都存在,他們的內(nèi)容將被合并,并且用戶范圍的settings.xml優(yōu)先。

默認用戶目錄不存在配置文件,可以copy maven安裝目錄下的settings.xml到用戶目錄。

關于settings.xml文件常用的的配置修改如下:
1)修改本地倉庫存儲路徑,默認值是~/.m2/repository 可在settings.xml中的localrepository修改成自己需要的目錄;
2)如果構建服務器因為網(wǎng)絡故障或者安全問題不能與遠程倉庫相連,需要離線模式下,設置offline屬性,設置為true,默認為false;
3)修改中央倉庫服務器,修改配置文件中便簽,添加或修改鏡像地址;
4)設置代理地址,修改配置文件中proxy標簽,定義代理服務器,實現(xiàn)maven的代理。

由于中央倉庫服務器是國外的,在國內(nèi)使用的話,下載比較慢,所以建議國內(nèi)用戶使用阿里云倉庫地址。

5)Maven常用命令
[root@maven testapp]# pwd      #確認當前目錄是之前構建的項目下
/tmp/testdir/testapp
[root@maven testapp]# mvn compile   #編譯(在編譯的過程中,可以看到使用的是阿里云的倉庫)
[INFO] BUILD SUCCESS      #只要在輸出信息的最后幾行中看到該行,則表示執(zhí)行成功
#以后所有命令都一樣,只要最后幾行有上述信息,就表示執(zhí)行成功
[root@maven testapp]# ls    #會看到目錄下會生成新的目錄target
pom.xml  src  target
# target:打包輸出目錄,如打包好的jar或war文件;
# target/classes:編譯輸出目錄;
[root@maven testapp]# mvn test          #測試命令
[root@maven testapp]# ls target/test-classes/
com
# target/test-classes:測試編譯輸出目錄
[root@maven testapp]# mvn clean   #清理命令(就是將編譯和測試生成的目錄刪除)
[root@maven testapp]# ls      # target目錄已經(jīng)不在了
pom.xml  src
[root@maven testapp]# mvn package       #打包命令
[root@maven testapp]# ls target/     #會生成一個jar包
classes         surefire-reports
maven-archiver  testapp-1.0-SNAPSHOT.jar
maven-status    test-classes
[root@maven testapp]# mvn install         #安裝命令(作用是將壓縮文件jar包或者war包上傳到本地倉庫)
[root@maven testapp]# ls ~/.m2/repository/com/lzj/maven/quickstart/testapp/1.0-SNAPSHOT/
#查看上傳的包
maven-metadata-local.xml  testapp-1.0-SNAPSHOT.jar
_remote.repositories      testapp-1.0-SNAPSHOT.pom
# 直接使用maven install命令對項目進行上傳到本地倉庫,
# 那么前面所有的步驟將會自動執(zhí)行,比如源代碼的編譯、打包等等。
[root@maven testapp]# mvn deploy      #發(fā)布(將包上傳到私服,現(xiàn)在我這里還沒有私服,所以會失敗)
6)mvn命令的生命周期

maven基于構建生命周期這個中心概念,這意味著構建和分布特定項目的過程被明確定義,具體如下:
大致的生命周期圖:
安裝部署Maven的教程
詳細的生命周期圖:
安裝部署Maven的教程

7)構建一個web項目,打出war包,并部署到tomcat
[root@maven testdir]# mvn archetype:generate -DgroupId=cn.test.testweb -DartifactId=testweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
#構建web項目
#生成的目錄結構如下:
[root@maven testdir]# ls testweb/
pom.xml  src
[root@maven testdir]# cat testweb/src/main/webapp/index.jsp 
<html>
<body>
<h3>Hello World!</h3>
</body>
</html>
[root@maven testdir]# cd testweb/   #進入項目目錄下
[root@maven testweb]# mvn package         #打包為war包
[root@maven testweb]# ls target/      #將會在該目錄下生成一個war包
classes  maven-archiver  testweb  testweb.war
#將生成的war包移動到Tomcat的網(wǎng)頁根目錄(webapps)下,它將自動解壓,
#然后即可訪問Tomcat測試生成的war包
[root@maven testweb]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
[root@maven testweb]# tar zxf apache-tomcat-9.0.31.tar.gz 
[root@maven testweb]# mv apache-tomcat-9.0.31 /usr/local/tomcat        #安裝tomcat
[root@maven testweb]# mv target/testweb.war /usr/local/tomcat/webapps/ #移動到Tomcat網(wǎng)頁根目錄
[root@maven testweb]# /usr/local/tomcat/bin/startup.sh    #啟動Tomcat
[root@maven testweb]# ls /usr/local/tomcat/webapps/      #查看,war包被自動解壓了
docs      host-manager  ROOT     testweb.war
examples  manager       testweb

客戶端訪問移動到Tomcat網(wǎng)頁根目錄下的war包,如圖:
安裝部署Maven的教程

以上就是安裝部署Maven的方法介紹,詳細使用情況還得要大家自己使用過才能知道具體要領。如果想閱讀更多相關內(nèi)容的文章,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI