摘要:介紹簡介編寫的用于構(gòu)建系統(tǒng)的自動化工具。文件的基本配置介紹什么是,項目對象模型。基本設(shè)置協(xié)作關(guān)系組織標(biāo)識,例如,在目錄下,將是目錄。
1. Maven介紹
1.1. 簡介
java編寫的用于構(gòu)建系統(tǒng)的自動化工具。
目前版本是2.0.9,注意maven2和maven1有很大區(qū)別,閱讀第三方文檔時需要區(qū)分版本。
1.2. Maven資源
?
見官方網(wǎng)站;
?
The 5 minute test,官方簡易入門文檔;
?
Getting Started Tutorial,官方入門文檔;
?
Build Cookbook,官方的cookbook;
?
POM Reference,POM文件的設(shè)置參考
?
Settings Reference ,settings文件的設(shè)置參考
?
Better Builds with Maven,免費的電子書,下載需要注冊。
1.3. Maven和Ant的區(qū)別
Maven正在逐漸取代Ant,很多java開源軟件(Spring、Struts2 ……)已經(jīng)使用maven。
?不需要寫復(fù)雜的處理腳本;
?聲明式的類庫依賴管理。
1.4. Maven的基本功能
?構(gòu)建:比如生成class、jar、war或者ear文件
?生成文檔:比如生成javadoc、網(wǎng)站文檔
?生成報告:比如junit測試報告
?生成依賴類庫:生成文檔,說明項目多其他軟件的依賴
?有關(guān)SCM:SCM(Software Configuration Management),軟件配置管理,比如版本控制,比如bug管理等等
?發(fā)布:生成供發(fā)布的分發(fā)包,比如生成Struts2的分發(fā)包,供提交給用戶使用
?部署:比如,web應(yīng)用程序,自動部署到指定的服務(wù)器上
通過我寫的商品管理的小例子,演示結(jié)合maven和svn的功能。
2. Maven使用
2.1. Maven的安裝和配置
?從官方網(wǎng)站下載最新的Maven分發(fā)包http://maven.apache.org/download.html,當(dāng)前為2.0.9;
?解壓縮到本地;
?配置maven, 將maven/bin目錄設(shè)置到windows環(huán)境變量Path中
?檢查maven是否安裝成功, 在命令行中執(zhí)行 mvn -version
2.2. Maven的基本使用
Maven的基本使用介紹通過命令行編寫簡單的java和web項目。
2.2.1. 實現(xiàn)Java項目
通過maven在命令行下創(chuàng)建普通java項目,也就是main方法執(zhí)行的項目或者jar文件的類庫。
2.2.1.1. 創(chuàng)建Maven項目
執(zhí)行:
mvn archetype:generate
在交互界面中:
?Choose a number: 回車即可,也就是選擇15
?Define value for groupId: 輸入組織id,比如easymorse.com
?Define value for artifactId:輸入項目名稱,比如helloworld
?Define value for version: 輸入版本號,可以直接回車,默認是1.0-SNAPSHOT
?Define value for package: java的包名,比如com.easymorse
?然后回車表示確認上述輸入即可。
觀察helloworld目錄(Define value for artifactId輸入的項目名稱)下生成的文件和目錄:
?項目構(gòu)建文件: pom.xml
?代碼框架: srcmainjavacomeasymorseApp.java
?
測試代碼: src estjavacomeasymorseAppTest.java
2.2.1.2. 運行Maven項目
命令行進入helloworld目錄Define value for artifactId輸入的項目名稱)。
項目打包
mvn package
檢查命令生成了什么?
?target目錄
?編譯了代碼
?編譯了測試代碼
?使用junit測試并生成的報告
?生成代碼的jar文件
運行打包的jar文件:
java -cp targethelloworld-1.0-SNAPSHOT.jar com.easymorse.App
編譯源程序
mvn compile
編譯并測試
mvn test
清空生成的文件
mvn clean
將maven項目轉(zhuǎn)化為eclipse項目
命令行運行:
mvn eclipse:eclipse
打開eclipse,菜單選擇:file>import>general>existing projects into workspace,在對話框中選中目錄,導(dǎo)入即可。
如果要清除有關(guān)eclipse項目的配置信息:
mvn -Dwtpversion=1.0 eclipse:clean
聯(lián)合使用
mvn eclipse:clean clean
2.2.2. 實現(xiàn)Web項目
通過maven在命令行下創(chuàng)建java web項目。
2.2.2.1. 創(chuàng)建Maven項目
在命令行輸入,這一步和創(chuàng)建java項目類似:
mvn archetype:generate
交互步驟說明:
?Choose a number: 回車即可,也就是選擇18,這里和java普通項目不一樣
?Define value for groupId: 輸入組織id,比如easymorse.com
?Define value for artifactId:輸入項目名稱,比如helloworld
?Define value for version: 輸入版本號,可以直接回車,默認是1.0-SNAPSHOT
?Define value for package: java的包名,比如com.easymorse
?然后回車表示確認上述輸入即可。
需要在pom.xml文件中增加servlet容器的插件:
org.codehaus.mojo tomcat-maven-plugin org.mortbay.jetty maven-jetty-plugin 6.1.6 maven-compiler-plugin 1.6 UTF-8
?tomcat插件
?jetty插件
?編譯插件的配置
repository目錄的作用
repository的位置,在用戶目錄的.m2目錄下。
repository目錄的作用,對依賴類庫的緩存。
2.2.2.2. 運行Maven項目
項目打包
mvn package
啟動tomcat
mvn tomcat:run
啟動jetty
mvn jetty:run
轉(zhuǎn)化為eclipse項目
mvn -Dwtpversion=1.5 eclipse:eclipse
這樣生成wtp插件的web項目。
打開eclipse,菜單選擇:file>import>general>existing projects into workspace,在對話框中選中目錄,導(dǎo)入即可。
另外,需要在eclipse里創(chuàng)建一個classpath變量,名稱為:M2_REPO,值為系統(tǒng)用戶下.m2/repository目錄。
3. POM文件的基本配置
3.1. POM介紹
3.1.1. 什么是POM
Project Object Model,項目對象模型。
通過xml格式保存的pom.xml文件。
作用類似ant的build.xml文件,功能更強大。
該文件用于管理:源代碼、配置文件、開發(fā)者的信息和角色、問題追蹤系統(tǒng)、組織信息、項目授權(quán)、項目的url、項目的依賴關(guān)系等等。
3.1.2. 快速瀏覽
一個完整的pom.xml文件,放置在項目的根目錄下。
4.0.0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
3.2. 基本設(shè)置
3.2.1. 協(xié)作關(guān)系
4.0.0 org.codehaus.mojo my-project 1.0 war
?groupId : 組織標(biāo)識,例如:org.codehaus.mojo,在M2_REPO目錄下,將是: org/codehaus/mojo目錄。
?artifactId : 項目名稱,例如:my-project,在M2_REPO目錄下,將是:org/codehaus/mojo/my-project目錄。
?version : 版本號,例如:1.0,在M2_REPO目錄下,將是:org/codehaus/mojo/my-project/1.0目錄。
?packaging : 打包的格式,可以為:pom , jar , maven-plugin , ejb , war , ear , rar , par
3.2.2. POM間關(guān)系
3.2.2.1. 依賴關(guān)系
依賴關(guān)系列表(dependency list)是POM的重要部分。
... junit junit 4.0 test
?groupId , artifactId , version :
?scope : compile(default),provided,runtime,test,system
?exclusions
如何查到依賴的類庫?
一般可以通過這個網(wǎng)站:http://www.mvnrepository.com
比如查詢hibernate,可以找到結(jié)果列表中的hibernate類庫條目。
點擊:http://www.mvnrepository.com/artifact/org.hibernate/hibernate,
選擇版本,比如3.2.6ga,即:http://www.mvnrepository.com/art ... /hibernate/3.2.6.ga
復(fù)制文章中的:
org.hibernate hibernate 3.2.6.ga
到pom.xml文件中即可。
是否還需要找到hibernate依賴的pom?
不需要,hibernate也會有pom,maven會通過它的pom自動找到它依賴的類庫。
3.2.2.2. 繼承關(guān)系
繼承其他pom.xml配置的內(nèi)容。
maven提供了一個類似java.lang.Object的頂級父pom.xml文件。
可以通過下面命令查看當(dāng)前pom.xml受到超pom.xml文件的影響:
mvn help:effective-pom
創(chuàng)建一個各種項目可復(fù)用的pom.xml文件:http://easymorse.googlecode.com/svn/trunk/pom/pom.xml
部署要復(fù)用的pom.xml文件:
mvn install
在自己的pom文件中繼承上述pom:
pom
3.2.2.3. 聚合關(guān)系
用于將多個maven項目聚合為一個大的項目。
比如目錄結(jié)構(gòu)如下:
. |-- pom.xml |-- module-a `-- pom.xml |-- module-b `-- pom.xml |-- module-c `-- pom.xml |-- foo-all `-- pom.xml
那么總的pom.xml文件類似:
...module-a module-b module-c foo-all
參考文檔:http://maven.apache.org/plugins/maven-eclipse-plugin/reactor.html
原文示例有誤,見:modules.rar
3.2.3. 其他配置
maven的屬性,是值的占位符,類似EL,類似ant的屬性,比如${X},可用于pom文件任何賦值的位置。
有以下分類:
?env.X:操作系統(tǒng)環(huán)境變量,比如${env.PATH}
?
project.x:pom文件中的屬性,比如:
?
settings.x:settings.xml文件中的屬性,比如:
?Java System Properties:java.lang.System.getProperties()中的屬性,比如java.home,引用方式:${java.home}
?
自定義:在pom文件中可以:
3.3. 其他
3.3.1. 設(shè)置離線
在.m2目錄下創(chuàng)建settings.xml文件(如果沒有的話)
settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">true
3.3.2. 安裝第三方包
經(jīng)常有第三方包,因為一些原因,在網(wǎng)上repository上沒有,需要自己動手安裝。
比如sun某些版本的jar文件,比如oracle的驅(qū)動。
已oracle驅(qū)動程序為例,比如驅(qū)動路徑為c:/driver/ojdbc14.jar,是10.2.0.3.0版本
在該網(wǎng)址能夠查到:http://www.mvnrepository.com/artifact/com.oracle/ojdbc14 artifactId和groupId。
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=c:/driver/ojdbc14.jar
這樣就可以在pom中依賴引用了:
com.oracle ojdbc14 10.2.0.3.0
3.3.3. 部署到tomcat
tomcat配置有管理權(quán)限的用戶:conf omcat-users.xml
在pom文件的tomcat插件中添加:
tomcat-maven-plugin
在.m2/settings.xml文件中增加:
myserver marshal password
運行打包部署,在maven項目目錄下:
mvn tomcat:deploy
訪問:http://localhost:8080/mycontext/ 即可。
撤銷部署:
mvn tomcat:undeploy
啟動web應(yīng)用:
mvn tomcat:start
停止web應(yīng)用:
mvn tomcat:stop
重新部署:
mvn tomcat:redeploy
部署展開的war文件:
mvn war:exploded tomcat:exploded
3.3.4. 未講到的內(nèi)容
?settings.xml的配置
?pom.xml的詳細配置
?
自定義插件的方法:http://maven.apache.org/plugins/maven-archetype-plugin/examples/archetype.html
?
自定義goal的執(zhí)行:
?插件的查詢和使用
?搭建鏡像repository
?在maven中調(diào)用ant
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/64116.html
摘要:一用途在創(chuàng)建項目的時候,可以自己手動創(chuàng)建,也可以利用工具創(chuàng)建,也就是來創(chuàng)建。可以用來創(chuàng)建項目部署項目安裝管理依賴編譯代碼管理二進制等。的目的是使項目過程規(guī)范化自動化高效化及強大的可擴展性。 一、maven用途 java在創(chuàng)建項目的時候,可以自己手動創(chuàng)建,也可以利用工具創(chuàng)建,也就是maven來創(chuàng)建。 maven可以用來創(chuàng)建項目、部署項目、安裝管理依賴、編譯代碼、管理二進制等。 mave...
摘要:的好處節(jié)省空間項目的體積相比傳統(tǒng)項目小很多,因為將包和項目分開了,通過依賴管理來管理包。一鍵構(gòu)建項目可以完成的工作編譯測試運行打包部署。 Maven 簡介 什么是 Maven Apache Maven,是一個軟件項目管理及自動構(gòu)建工具,由Apache軟件基金會所提供,一個開源項目,由 Java 開發(fā),并且只是用來管理 Java 項目的。 Maven 的好處 節(jié)省空間: Maven ...
摘要:的好處節(jié)省空間項目的體積相比傳統(tǒng)項目小很多,因為將包和項目分開了,通過依賴管理來管理包。一鍵構(gòu)建項目可以完成的工作編譯測試運行打包部署。 Maven 簡介 什么是 Maven Apache Maven,是一個軟件項目管理及自動構(gòu)建工具,由Apache軟件基金會所提供,一個開源項目,由 Java 開發(fā),并且只是用來管理 Java 項目的。 Maven 的好處 節(jié)省空間: Maven ...
閱讀 707·2021-11-18 10:02
閱讀 2243·2021-11-15 18:13
閱讀 3165·2021-11-15 11:38
閱讀 2956·2021-09-22 15:55
閱讀 3680·2021-08-09 13:43
閱讀 2450·2021-07-25 14:19
閱讀 2459·2019-08-30 14:15
閱讀 3453·2019-08-30 14:15