Maven2安裝總結

terryisme發表於2009-02-25
首先當然去Apache網站下載Maven2了。下載地址: 。我下載的版本是maven-2.0.4-bin.zip

然後我把maven-2.0.4-bin.zip解壓到D:maven-2.0.4
下面就是配置環境變數了,這和1.0的版本是一樣的。(1)MAVEN_HOME:D:maven-2.0.4 (2)在Path 中加入%MAVEN_HOME%bin

這樣配置就OK了。然後,我建立了如下目錄:E:appmavenApp,當然這些可以隨便建立,呵呵。

下面說一些Maven1.x和Maven2.x的不同(一些摘自一些網友文章)
------------------------------------
Maven2 把配置檔案壓縮成了pom.xml和settings.xml 兩個檔案,簡潔了不少。POM是Maven的核心物件模型,在Maven2中POM已由project.xml轉移到pom.xml中使用,版本也由3升 級為4。對於專案,一般只需要pom.xml就行了。在Maven2中不需要也不提倡使用maven.xml

生命週期的引入
在Maven2中有了明確的生命週期概念,而且都提供與之對應的命令,使得專案構建更加清晰明瞭。主要的生命週期階段:

validate,驗證工程是否正確,所有需要的資源是否可用。
compile,編譯專案的原始碼。
test-compile,編譯專案測試程式碼。
test,使用已編譯的測試程式碼,測試已編譯的原始碼。
package,已釋出的格式,如jar,將已編譯的原始碼打包。
integration-test,在整合測試可以執行的環境中處理和釋出包。
verify,執行任何檢查,驗證包是否有效且達到質量標準。
install,把包安裝在本地的repository中,可以被其他工程作為依賴來使用
deploy,在整合或者釋出環境下執行,將最終版本的包複製到遠端的repository,使得其他的開發者或者工程可以共享。
generate-sources,產生應用需要的任何額外的原始碼,如xdoclet。

新增Dependency Scope
在POM 4中,中還引入了,它主要管理依賴的部署。目前可以使用5個值:

compile,預設值,適用於所有階段,會隨著專案一起釋出。
provided,類似compile,期望JDK、容器或使用者會提供這個依賴。如servlet.jar。
runtime,只在執行時使用,如JDBC驅動,適用執行和測試階段。
test,只在測試時使用,用於編譯和執行測試程式碼。不會隨專案釋出。
system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查詢它。
------------------------------------
下面說些基本設定,開啟D:maven-2.0.4confsettings.xml
1. 改變E:/app/m2/repository 目的:改變本地的資料倉儲目錄(存放從遠端下載的jar包),如果不改變也可以,如不改變,預設目錄為:C:Documents and Settings主機名.m2repository
2. 配置代理,主要目的是為了能從遠端下載jar包,根據實際的網路情況進行配置吧。因為我現在單位是有代理伺服器的,如果不配置,就不能從遠端下載jar包了。我的配置如下(注意:如果你的網路沒有代理伺服器,就不用配置這個步驟)

optional
true
http
192.168.17.100
8889
192.168.*.*


下面就是一些goal命令了,這裡和Maven1有不少不同,常用的命令有:
建立Maven的普通java專案:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName
建立Maven的Web專案:mvn archetype:create -DgroupId=com.mycompany.app
-DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp
編譯原始碼:mvn compile (或者:mvn compiler:compile)
編譯測試程式碼:mvn test-compile
執行測試:mvn test
產生site:mvn site
打包:mvn package
在本地Repository中安裝jar:mvn install
清除產生的專案:mvn clean
生成eclipse專案:mvn eclipse:eclipse
生成idea專案:mvn idea:idea
組合使用goal命令,如只打包不測試:mvn -Dtest package
編譯測試的內容:mvn test-compile
只打jar包: mvn jar:jar
只測試而不編譯,也不測試編譯:mvn test -skipping compile -skipping test-compile (這裡要特別注意 -skipping 的靈活運用,當然也可以用於其他組合命令)
清除eclipse的一些系統設定:mvn eclipse:clean
=========================================================
配置儲存庫
要求專案的每個開發者必須在conf目錄中配置儲存庫是不方便的,所以Maven可以同時檢視多個儲存庫並且將它們全部配置在pom.xml檔案 中。讓我們看看一個例子,它展示瞭如何在應用程式用使用多個儲存庫。在以下從pom.xml檔案摘錄的片斷中,我們設定了兩個儲存庫來讓Maven尋找依 賴項。Ibiblio一直是預設的儲存庫,我們又新增了Planet Mirror作為後援儲存庫。我們也可以讓團隊使用的本地web伺服器作為第二個儲存庫。


Ibiblio
Ibiblio



PlanetMirror
Planet Mirror



==================================================
遇到的小問題解決。
* 當建立一個工程後,執行 mvn eclipse:eclipse ,建立一個maven的工程,用eclipse開啟後,發現報如下錯誤:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp ,這是因為在Eclipse 沒有配置 M2_REPO 變數,配置步驟:window >> preferences >> Java >> Build Path >> Classpath Variables
新建一個 M2_REPO 的變數,變數值指向你係統的Maven2的資料倉儲位置。
------------------------------------------
* POM.XML 繼承的寫法
xsi:schemaLocation="
4.0.0
org.apache.hivemind
hivemind-examples
jar
2.0-alpha-1

org.apache.hivemind
hivemind-project
2.0-alpha-1
../pom.xml

HiveMind Examples
2003


org.apache.hivemind
hivemind-framework
2.0-alpha-1


* 如何安裝Jar(或war)依賴到本地的資料倉儲中?
下面具一個如何把dwr.jar包上傳到本地資料倉儲的例子,一看例子,大家就明瞭了。
- 下載dwr.jar包到本地,我把它放到了 C:/ (C盤根目錄),

- 進入“命令列提示符”,進入到C:/,然後執行 mvn install:install-file -Dfile=dwr.jar -DgroupId=dwr.mocha -DartifactId=dwrDart -Dversion=1.0 -Dpackaging=jar 這樣就把dwr傳到了本地倉庫中(我的本地倉庫地址為:E:appm2repository),上傳到倉庫中的jar包名為dwrDart- 1.0.jar,目錄結構為dwr/mocha/dwrDart/1.0/dwrDart-1.0.jar
[@more@]hehehhehe

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/93029/viewspace-1017834/,如需轉載,請註明出處,否則將追究法律責任。

相關文章