Maven入門
1.maven的安裝和環境變量配置
1)下載安裝
可以在http://maven.apache.org/download.cgi下載最新版本的maven也可以在https://mirrors.tuna.tsinghua.edu.cn/apache//maven/下載舊版本的maven
下載zip格式的文件,不用安裝,直接解壓到要安裝的目錄就好
2)配置環境變量
創建變量M2_HOME:D:\Program Files\Java\apache-maven-3.2.5(安裝位置)在path加入:%M2_HOME%/bin
在cmd命令窗口,輸入mvn -v驗證是否配置成功
修改 apache-maven-3.2.5\conf\setting.xml,作爲全局設置
考出註釋中的 <localRepository>/path/to/local/repo</localRepository> 並修改位置爲本地倉庫位置
<localRepository>D:\Program Files\Java\.m2\repository</localRepository>
把setting.xml拷貝到.m2文件夾下作爲 用戶設置2.在eclipse/myeclipse中使用maven
在IDE中應該配置本地MAVEN,如果使用編譯工具自帶的maven的話則不方便設置和調試。windows->preferences->[myeclipse->]maven[4myeclipse]->installations:add 加入本地maven
->user setting 設置 用戶/全局配置文件位置,設置本地倉庫位置
1)創建maven項目
new->maven project填入<groupId>com.neu.user</groupId> 項目組名
<artifactId>maven_3</artifactId> 項目名
<version>0.0.1-SNAPSHOT</version> 版本 (這也是一個項目的座標,用來標識和找到項目)
<packaging>jar</packaging> 打包/項目類型
選擇模板,創建項目
2) <dependency>:通過座標的方式從本地倉庫引入依賴(x項目所依賴的jar包),如果本地倉庫沒有目標包,則從maven的中央倉庫下載
在http://mvnrepository.com/查找各種包的座標 <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
3)依賴傳遞 <dependency>
<groupId>com.neu.user</groupId>
<artifactId>maven_0</artifactId>
<version>${version}</version>
</dependency>
<dependency>中寫另一個項目的座標,即可依賴另一個項目,同樣會擁有另一個項目的依賴的包引用
依賴擁有傳遞性,A直接依賴於B,B直接依賴於C,則A間接依賴於C
依賴傳遞的原則:路徑長度短的>路徑長度長的(即直接依賴優於間接依賴)
在pom.xml中,配置在前面的優於後面的
4)模塊的聚合
創建管理項目
創建項目時,勾選Create a simple project,packing選擇pom
配置pom文件
<modules>
<module>../maven_0</module>
<module>../maven_1</module>
<module>../maven_2</module>
</modules>
將三個模塊導入,聚合在一起這樣就可以同時對三個模塊進行處理
5)繼承
把所有項目pom.xml文件中所有相同的部分拷貝到父類項目,這樣在子項目中就不用再寫相同的內容
在子項目中添加:
<parent>
<groupId>com.neu.user</groupId>
<artifactId>maven_3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
實現繼承繼承不會繼承依賴關係,但可以統一配置依賴的版本信息
在子項目中導入依賴時就不用考慮版本
還可以把聚合信息整合到 父項目中