Maven簡單使用教程

MAVEN 常用的構(gòu)建命令

mvn -v 查看版本
mvn -compile 變異
mvn -test 測試
mvn -package 打包
mvn -clean 刪除target
mvn -install 將類發(fā)布到本地倉庫

自動創(chuàng)建項目目錄骨架

archetype插件
1.命令行創(chuàng)建普通java項目

  • 使用mvn archetype:generate命令,如下所示:
    mvn archetype:generate -DgroupId=com.lzw -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  • 使用mvn archetype:create命令
    mvn archetype:create -DgroupId=com.lzw -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2.命令行創(chuàng)建javaWeb項目
mvn archetype:generate -DgroupId=com.lzw -DartifactId=demo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
==注:-DinteractiveMode=false 表示禁用交互的模式來創(chuàng)建工程==

settings.xml配置講解

maven的配置文件settings.xml存在于兩個地方:
1.安裝的地方:{M2_HOME}/conf/settings.xml 2.用戶的目錄:{user.home}/.m2/settings.xml
前者又被叫做全局配置,對操作系統(tǒng)的所有使用者生效;后者被稱為用戶配置,只對當(dāng)前操作系統(tǒng)的使用者生效。如果兩者都存在,它們的內(nèi)容將被合并,并且用戶范圍的settings.xml會覆蓋全局的settings.xml


<localRepository>usr/local/maven</localRepository>
本地倉庫。該值表示構(gòu)建系統(tǒng)本地倉庫的路徑。其默認值為${user.home}/.m2/repository


<offline>false</offline>
表示Maven是否需要在離線模式下運行。如果構(gòu)建系統(tǒng)需要在離線模式下運行,則為true,默認為false。當(dāng)由于網(wǎng)絡(luò)設(shè)置原因或者安全因素,構(gòu)建服務(wù)器不能連接遠程倉庫的時候,該配置就十分有用。


配置aliyun國內(nèi)倉儲

<mirror>  
    <id>CN</id>  
    <name>Aliyun Nexus</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
    <mirrorOf>central</mirrorOf>  
</mirror>

proxies用來配置不同的代理
proxy代理元素包含配置代理時需要的信息
id代理的唯一定義符,用來區(qū)分不同的代理元素
active該代理是否是激活的那個。true則激活代理。當(dāng)我們聲明了一組代理,而某個時候只需要激活一個代理的時候,該元素就可以派上用處
protocol代理的協(xié)議。 協(xié)議://主機名:端口,分隔成離散的元素以方便配置
host代理的主機名
port代理的端口
username代理的用戶名
password代理的密碼
nonProxyHosts不該被代理的主機名列表。該列表的分隔符由代理服務(wù)器指定;例子中使用了豎線分隔符,使用逗號分隔也很常見

  <proxy>    
     <id>myproxy</id>  
     <active>true</active>  
     <protocol>http://…</protocol>
     <host>proxy.somewhere.com</host> 
     <port>8080</port>
     <username>proxyuser</username>
     <password>somepassword</password>  
     <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>
  </proxy>

maven插件的生命周期

clean、complie、test、package、install
clean 清理項目
default 構(gòu)建項目
site 生成項目站點

POM常用元素

  • modeVersion 指定了當(dāng)前POM的版本
  • groupId 定義當(dāng)前maven屬于那個實際的項目,通常用公司網(wǎng)址反寫+項目名稱標(biāo)識
  • artifactId 模塊的標(biāo)識,通常使用項目名+模塊名標(biāo)識
  • version 當(dāng)前項目的版本號,通常由三個數(shù)字表示,0.0.0,第一個0標(biāo)識大版本號,第二個0標(biāo)識分支版本號第三個0標(biāo)識小版本號
  • 版本:snapshot快照版本、alpha內(nèi)部測試版本、beta公測版本、release穩(wěn)定版本、GA正式發(fā)布版本
  • package maven 項目打包的方式,默認jar包,還可以打成war,zip、pom
  • name 項目名稱
  • url 項目地址
  • description 項目描述
  • developers 開發(fā)者列表
  • licenses 許可證的信息
  • organization 組織信息
  • prerequisites 屬性變量信息
  • dependencies 該元素描述了項目相關(guān)的所有依賴,包含多個依賴項dependencie,dependencie其中type依賴類型,默認類型是jar。它通常表示依賴的文件的擴展名。scope依賴范圍。optional可選依賴,如果你在項目B中把C依賴聲明為可選,你就需要在依賴于B的項目(例如項目A)中顯式的引用對C的依賴。exclusions排除依賴
  • dependencyManagement引入的依賴并不會被引用,主要用在父模塊中
  • build 構(gòu)建

聚合和繼承

聚合主要使用的是modules,將多個模塊聚合在一起,可以同時進行編譯打包
繼承主要使用的事parent,將父模塊的package定義為pom類型,子模塊可以繼承父模塊的properties變量屬性以及父模塊中使用dependencyManagement定義的依賴,子模塊不用顯示的指定版本號和作用域

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容