認識mavenhtml
- 約定優於配置
- 簡單
- 測試支持
- 構建簡單
- 插件豐富
- 持續集成
配置setting.xmlspring
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>ui</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>osc</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>
pom.xmlapache
- groupId com.gupaoedu
- packaging 打包方式 默認是jar
- version 版本號
- artfactId 功能命名
- dependencyManagement
- 最好只出如今父pom
- 統一版本號
- dependency的聲明 (子POM裏用到再引)
- Dependency
- Scope(使用場景)
- compile 編譯 (默認,都用本範圍,包會打的很大) 例如spring-core
- test 測試
- provided編譯,不會打包 例如 servlet
- runtime運行時纔有效,編譯時不用的包(就是不須要編譯的包) 例如JDBC驅動實現
- system 本地一些jar,不在maven的中央倉庫 例如短信jar
- 依賴傳遞(子pom依賴於父pom,若是父pom已經引用了某個jar包,子pom不須要再引用)
- 查看pom tree命令: mvn dependency:tree > d.txt
依賴仲裁tomcat
- 最短路徑原則(依賴節點數少的)
- 加載前後原則(使用後加載,書寫順序)
使用versions-maven-plugin插件統一修改多個moudle版本號maven
exclusionside
- 排除包(解決衝突的時候使用,排除掉衝突的jar包)
生命週期測試
- lifecycle,包含多個phase,包含多個goals
- A Build Lifecycle is Made Up of Phases(階段)
- A Build Phase is Made Up of Plugin Goals(咱們寫的插件都是goals,須要掛在maven的Phase 下,好比package、install )
- 以下所示,goals掛在 install上面
- Maven作的任何事情均可以是一個plugin
- 每個階段都會運行以前的全部階段
版本管理網站
- 1.0-SNAPSHOT(測試版本,遠程SNAPSHOT變化,本地倉庫不會隨時刷新,先刪除本地,再去拉一次,或以下 -U強拉)
- mvn clean package -U (強制拉一次)
- 主版本號.次版本號.增量版本號-<里程碑版本>
- 1.0.0-RELAESE(不要發佈SNAPSHOT,由於能夠被替換,release版本,必須升級版本,不會覆蓋)
經常使用命令ui
- Compile(編譯,存在於maven內置插件裏面,默認就帶的)
- clean 刪除target/ (文件夾下的全部東西清理)
- test test case junit/testNG(運行這倆相關的程序)
- package 打包(打包依據<packaging>pom</packaging>)
- install 把項目install到local repo
- deploy 發本地jar發佈到remote
插件this
maven插件官網 或者 mojo插件網站
- findbugs 插件:靜態代碼檢查
- versions 統一升級版本號
- mvn versions:set -DnewVersion=1.1
- source插件 打包源代碼
- assembly 打包zip、war(with dependency這樣全部用到的jar包都會打到你的包裏面)
- tomcat7(maven的tomcat插件,不用在另外下載)
自定義插件
- 打包方式:<packaging>maven-plugin</packaging>