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.安裝的地方:{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定義的依賴,子模塊不用顯示的指定版本號和作用域