程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Maven2 體驗

Maven2 體驗

編輯:關於JAVA

1.1. Maven2 體驗

聲明:本節內容來源於blogJava網站jbob的blog 本節的版權歸原作者所有,不適用本手冊的版權申明。

maven是一個Java項目管理工具,深化了ant,但又有自己一整套的項目集成策略。目前的版本是2.0.2。

1.

maven網站 下載maven2,解壓縮

2.

配置環境變量:maven_home、path

3.

cmd-> mvn --version 檢查是否安裝成功 [顯示版本號,則說明安裝成功]

4.

配置,Maven的配置分為三個層次:

*

- pom.XML:針對某個項目的配置

*

Installation

*

User -針對某個用戶的配置

我們首先配置主要是user級別的,主要包括兩點:設置本地的資源庫和代理服務器[如果需要的話] 在%maven_home%/conf/setting.XML中配置:

d:/repo

proxy1

true

http

222.136.91.1

80

修改之後copy一份到${home}/.m2

5.

建立新的項目

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

*

首先,程序會從遠程下載必要的jar包到你的localRepository,即我們剛剛設置的[d:/repo]

*

然後,會在當前目錄下面生成my-app文件夾,包括簡單的包結構[Java,test]和一個HelloWorld程序及測試,以及pom.XML文件。

注意:pom.XML contains the Project Object Model (POM) for this project.The POM is the basic unit of work in Maven。

6.

編譯

mvn compile

第一次運行會下載很多jar包,而且機器負荷會很重。運行這個命令需要在pom.XML相同目錄下面, 這個編譯只編譯主程序,不會編譯test下面的程序。如果需要單獨編譯test,請運行:

mvn test-compile

compile之後會生成target文件夾,主程序編譯在classes下面,測試程序放在test-classes下

7.

測試

mvn test

會自動先編譯再運行測試

8.

打包

mvn package

打包之前會進行編譯,測試

9.

安裝

mvn install

會將package之後的jar包copy到

/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.jar

10.

其他

mvn site

注意,還可以:

deploy site

在pom.XML中加入

website

< url> scp://www.mycompany.com/www/docs/project/

當然你需要設置server

mvn site-deploy

mvn clean

mvn idea:idea [為IDE工具idea生成項目文件]

11.

Resource

${basedir}/src/main/resources都會編譯到jar文件中,而且該目錄下的內容將直接位於jar文件的頂部。

測試用資源文件-> ${basedir}/src/test/resources,引用時如下例:

InputStream is = getClass().getResourceAsStream( "/test.propertIEs" );

文件位於 ${basedir}/src/test/resources/test.propertIEs。

12.

如何filter我們的資源文件

< build >

< resources >

< resource >

< directory > src/main/resources

< filtering > true

因為原來默認的filter為false所以要加上上面的代碼

eg:我們在src/main/resources下面建立application.propertIEs文件

# application.propertIEs

application.name=${pom.name}

application.version=${pom.version}

運行:mvn process-resources 在target/classes下面的application.propertIEs結果為:

# application.propertIEs

application.name=Maven Quick Start Archetype

application.version=1.0-SNAPSHOT

這就是所謂的filter。當然filter還可以用其他的外部文件,不一定來自pom.xml[ ${pom.name} ]以及setting.XML[ ${settings.localRepository }]

e.g src/main/filters/filter.propertIEs:

# filter.propertIEs

my.filter.value=hello!

pom.XML:

< build >

< filters >

< filter > src/main/filters/filter.propertIEs

< resources >

< resource >

< directory > src/main/resources

< filtering > true

# application.propertIEs

application.name=${pom.name}

application.version=${pom.version}

message=${my.filter.value}

這樣在運行mvn process-resources 會得到類似的效果,當然我們也可以直接在pom.XML中定義:

< build >

< resources >

< resource >

< directory > src/main/resources

< filtering > true

< propertIEs >

< my .filter.value > hello

效果同樣,這樣就不需要外部文件了。另外filter還可以來自系統設置以及可以自定義:

# application.propertIEs

java.version=${Java.version}

command.line.prop=${command.line.prop}

13.

jar包依賴

我們在mvn install後在local repo中生成的jar包也可以被其他項目所引用

com.mycompany.app

my-app

1.0-SNAPSHOT

compile

注意scope,這裡是compile,如果使用junit,scope是test。

舉例說明:如果我們的project需要用到log4j包,那麼我們可以 先google--"site:www.ibiblio.org maven2 log4j"。Index of /maven2/log4j/log4j 下面有maven-metadata.xml 描述了groupId,artifactId,version等等。獲取了這些信息之後,你 就可以在pom.XML中添加依賴

log4j

log4j

1.2.12

compile

14.

如何發布我的jar包到我的remote repository

你需要在setting.XML中間設置server:

mycompany-repository

jvanzyl

/path/to/identity

my_key_passphrase

然後在pom.XML中設置遠程url:

mycompany-repository

MyCompany Repository

scp://repository.mycompany.com/repository/maven2

1.2. Maven2的Eclipse插件安裝和使用

1.2.1. 安裝

你可以從http://m2eclipse.codehaus.orgupdate安裝Maven2的Eclipse插件,具體 安裝步驟請看該網站提供的Flash Demo: http://m2eclipse.codehaus.org/Installing_Maven_2.0_plugin_for_Eclipse.Html

1.2.2. 使用

該插件的使用請看該網站提供的Flash Demo: http://m2eclipse.codehaus.org/Maven_2.0_Plugin_for_Eclipse.Html

關於openfan項目的Maven操作請參看後續章節。

1.3. 更多的Maven2的參考

*

Maven 網站

*

developerWorks 中國:Maven2 的新特性

*

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved