二、構建腳本:
maven——pom.xml(Project Object Model)
ant——build.xml
其基本結構是目標(target)、依賴(depends),以及實現目標的任務。
三、maven vs ant
Ant是過程式的,開發者顯示指定每個目標,以及完成該目標所須要執行的任務。
Maven是聲明式的,項目構建過程和過程各個階段所需的工做都由插件實現。
四、相關知識
Spring——實現IoC;
Hibernate——實現封裝JDBC;
Eclipse安裝目錄eclipse.ini文件,添加vm配置指向jdk:
--launcher.SSMaxPermSize
256m
-vm
D:\java\jdk1.7\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx256m
m2eclipse——Eclipse下的Maven插件。
2、Maven使用入門
——以Hello World爲例
一、mvn help:system——打印全部的Java系統屬性和環境變量。
推薦用戶複製M2_HOME/conf/settings.xml文件到~/.m2/settings.xml,在用戶範圍內修改Maven配置,而不是在全局範圍修改。
Maven的核心是pom.xml,一個HelloWord項目的pom.xml:
參數解釋:
modelVersion——POM模型的版本,對於Maven2以及Maven3來講,它只能是4.0.0
核心三元素——groupId、artifactId、version,定義了一個項目基本的座標;在Maven的世界,任何的jar、pom或者war都是基於這些基本的座標進行區分。
groupId:定義裏項目屬於哪一個組,這個組每每和項目所在的組織或公司存在關聯;
artifactId:定義了當前Maven項目在組中的惟一ID;
version:指定Hello World項目當前的版本,1.0-SNAPSHOT說明快照版本,處於開發中,不是穩定版本。
name:不是必須的,可用於聲明一個友好的項目名稱。
二、編寫主代碼
主代碼:被打包到最終的構件,如jar中,默認位於src/main/java目錄;
測試代碼:只運行測試時用到,不會被打包,默認位於src/test/java目錄;
使用Maven編譯:
在項目根目錄下,運行命令
mvn clean compile
clean:清理輸出目錄target/
compile:編譯項目主代碼
以上命令執行順序:
clean:clean->resources:resources->compiler:compile
三、編寫測試代碼
添加junit測試依賴:
注:scope爲依賴範圍,test值表示只對測試有效,默認爲compile,則表示對主代碼和測試代碼都有效。
測試代碼:
典型單元測試的三個步驟:
(1)準備測試類及測試數據;
(2)執行要測試的行爲;
(3)檢查結果。
JUnit3中,約定全部須要執行測試的方法都以test開頭
JUnit4中,須要執行的測試方法都應該以@Test進行標註
使用Maven執行測試:
運行mvn clean test
注意,以上命令實際執行了如下的任務:
clean:clean resources:resources compiler:compile resources:testResources compiler:testCompile.
詳見maven生命週期。
以上命令可能提示java版本不夠,compiler插件默認java1.3,須要作如下修改:
四、打包和運行
Pom默認打包類型爲jar,執行命令
進行打包
:
mvn clean package
輸出也位於target/輸出目錄中。
若讓其餘項目引用該jar,須要執行安裝步驟,,將項目輸出的jar安裝到Maven本地倉庫中:
mvn clean install
注意:執行test前會先執行compile,執行package前會先執行test,執行install前會執行package。
默認生成的jar是不可以執行運行的,由於main方法的類信息不回添加到manifest中。爲了生成可執行的jar文件,須要藉助maven-shade-plugin,配置插件以下:
五、使用Archetype生成項目骨架
Mav項目中基本的目錄結構和pom.xml文件內容成爲項目的骨架。
Maven提供了Archetype快速生成項目骨架。
Maven3中,運行如下命令:
mvn archetype:generate
接着根據提示輸入項目groupId artifactId version package包名等