- Maven的常用命令
src
-main
-java
-package
-test
-java
-package
resources
mvn -v 查看maven版本
compile 編譯
test 測試
package 打包
clean 刪除target
install 添加jar包到本地倉庫中
// 創(chuàng)建目錄的兩種方式:
archetype: generate 按照提示進行選擇
archetype: generate -DgroupId=組織名,公司網(wǎng)址的反寫+項目名
-DartifactId=項目名-模塊名
-Dversion=版本號
-Dpackage=代碼所存在的包名
坐標
構件
倉庫
本地倉庫 修改地址:在settings.xml中修改一行l(wèi)ocal repo的儲存地址 .m2文件夾的地址
遠程倉庫
鏡像倉庫
pom.xml中的常用標簽
project: 根元素,包含約束信息
modelVersion: 指定當前pom的版本
坐標信息:
groupId: 反寫的公司網(wǎng)址+項目名
artifactId: 項目名+模塊名
version: 版本號(0.0.1snapshot,大版本0+分支號0+小版本1)
packageing: 打包方式,默認是jar,還有war、zip 、pom等
name:項目描述名,項目文檔中使用
url:項目地址
description: 項目面試
developers:開發(fā)人員列表
licenses:許可證信息
origanization:開發(fā)組織信息
dependencies:依賴列表中有很多dependency,dependency可以有groupId, artifactId, version, type, scope(依賴范圍),optional(設置依賴是否可選,默認為false,默認是必須選),exclusion(排除)
dependency management: 依賴列表,不會實際運行,用在父類模塊中
build:plugins插件列表,可以包含多個插件,插件也是有groupId artifactId version的
modules:可以指定多個模塊,一起定義
scope(依賴范圍)有六種:
- compile: 默認的范圍,編譯測試運行都有效
- provided:在編譯和測試時有效,在運行時該dependency不會有效
- runtime:在測試和運行的時候有效,例子:jdbc的驅動,在測試運行時有效,編譯時無效
- test:只在測試時有效,例子:junit
- system:與本地系統(tǒng)向關聯(lián),可移植性差,和provided類似
- import:導入的范圍,它只使用在dependencyManagement中,表示從其他的pom中導入dependency的配置
依賴有兩個原則
1.短路優(yōu)先
A->B->C->X
A->D->X (優(yōu)先)
- 先聲明的優(yōu)先
如果路徑相同長度相同,則誰先聲明,先解析誰。
【C依賴A和B,A和B都包含同一個不同版本的Jar,誰依賴在前取誰的依賴版本。】
?# 聚合和繼承
pom.xml的modules中,加入三個module,

在aggreation中,會build三個module

在parent項目中,可以在dependencyManagement中添加統(tǒng)一的junit version

bge 的pom中也要加入parent標簽,讓bge從parent中繼承junit

http://www.imooc.com/learn/443
https://github.com/Tiakon/maven-learning-notes