日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven2 的常用命令

發布時間:2024/4/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven2 的常用命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://bakcom.iteye.com/blog/280604

Maven2 的運行命令為 : mvn

usage: mvn [options] [<goal(s)>] [<phase(s)>]

Options:
?-am,--also-make??????????????????????? If project list is specified, also
??????????????????????????????????????? build projects required by the
??????????????????????????????????????? list
?-amd,--also-make-dependents??????????? If project list is specified, also
??????????????????????????????????????? build projects that depend on
??????????????????????????????????????? projects on the list
?-B,--batch-mode??????????????????????? Run in non-interactive (batch)
??????????????????????????????????????? mode
?-C,--strict-checksums????????????????? Fail the build if checksums don't
??????????????????????????????????????? match
?-c,--lax-checksums???????????????????? Warn if checksums don't match
?-cpu,--check-plugin-updates??????????? Ineffective, only kept for
??????????????????????????????????????? backward compatibility
?-D,--define <arg>????????????????????? Define a system property
?-e,--errors??????????????????????????? Produce execution error messages
?-emp,--encrypt-master-password <arg>?? Encrypt master security password
?-ep,--encrypt-password <arg>?????????? Encrypt server password
?-f,--file <arg>??????????????????????? Force the use of an alternate POM
??????????????????????????????????????? file.
?-fae,--fail-at-end???????????????????? Only fail the build afterwards;
??????????????????????????????????????? allow all non-impacted builds to
??????????????????????????????????????? continue
?-ff,--fail-fast??????????????????????? Stop at first failure in
??????????????????????????????????????? reactorized builds
?-fn,--fail-never?????????????????????? NEVER fail the build, regardless
??????????????????????????????????????? of project result
?-gs,--global-settings <arg>??????????? Alternate path for the global
??????????????????????????????????????? settings file
?-h,--help????????????????????????????? Display help information
?-l,--log-file <arg>??????????????????? Log file to where all build output
??????????????????????????????????????? will go.
?-N,--non-recursive???????????????????? Do not recurse into sub-projects
?-npr,--no-plugin-registry????????????? Ineffective, only kept for
??????????????????????????????????????? backward compatibility
?-npu,--no-plugin-updates?????????????? Ineffective, only kept for
??????????????????????????????????????? backward compatibility
?-nsu,--no-snapshot-updates???????????? Suppress SNAPSHOT updates
?-o,--offline?????????????????????????? Work offline
?-P,--activate-profiles <arg>?????????? Comma-delimited list of profiles
??????????????????????????????????????? to activate
?-pl,--projects <arg>?????????????????? Comma-delimited list of specified
??????????????????????????????????????? reactor projects to build instead
??????????????????????????????????????? of all projects. A project can be
??????????????????????????????????????? specified by [groupId]:artifactId
??????????????????????????????????????? or by its relative path.
?-q,--quiet???????????????????????????? Quiet output - only show errors
?-rf,--resume-from <arg>??????????????? Resume reactor from specified
??????????????????????????????????????? project
?-s,--settings <arg>??????????????????? Alternate path for the user
??????????????????????????????????????? settings file
?-T,--threads <arg>???????????????????? Thread count, for instance 2.0C
??????????????????????????????????????? where C is core multiplied
?-t,--toolchains <arg>????????????????? Alternate path for the user
??????????????????????????????????????? toolchains file
?-U,--update-snapshots????????????????? Forces a check for updated
??????????????????????????????????????? releases and snapshots on remote
??????????????????????????????????????? repositories
?-up,--update-plugins?????????????????? Ineffective, only kept for
??????????????????????????????????????? backward compatibility
?-V,--show-version????????????????????? Display version information
??????????????????????????????????????? WITHOUT stopping build
?-v,--version?????????????????????????? Display version information
?-X,--debug???????????????????????????? Produce execution debug output

?

常用命令為 :

???????????? mvn archetype:create :創建 Maven 項目

???????????? mvn compile :編譯源代碼

???????????? mvn test-compile :編譯測試代碼

???????????? mvn test : 運行應用程序中的單元測試

???????????? mvn site : 生成項目相關信息的網站

???????????? mvn clean :清除目標目錄中的生成結果

???????????? mvn package : 依據項目生成 jar 文件

???????????? mvn install :在本地 Repository 中安裝 jar

???????????? mvn eclipse:eclipse :生成 Eclipse 項目文件

生成項目

???????????? 建一個 JAVA 項目 : mvn archetype:create -DgroupId=com.demo -DartifactId=App

????????? 建一個 web 項目 : mvn archetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp

?

生成 Eclipse 項目

普通 Eclipse 項目執行 : mvn eclipse:eclipse

?????????? Eclipse WTP 項目執行 : mvn eclipse:eclipse–Dwtpversion=1.0

????????????? wtp1.0 以上版本均可用)

?

?

pom.xml 文件基本節點介紹

<project > :文件的根節點 .
<modelversion > : pom.xml 使用的對象模型版本 .
<groupId > :創建項目的組織或團體的唯一 Id.
<artifactId > :項目的唯一 Id, 可視為項目名 .
<packaging > :打包物的擴展名,一般有 JAR,WAR,EAR 等
<version > :產品的版本號 .
<name > :項目的顯示名,常用于 Maven 生成的文檔。
<url > :組織的站點,常用于 Maven 生成的文檔。
<description > :項目的描述,常用于 Maven 生成的文檔。

?

?

在 POM 4 中, <dependency> 中還引入了 <scope> ,它主要管理依賴的部署。

目前 <scope> 可以使用 5 個值:

compile :缺省值,適用于所有階段,會隨著項目一起發布。

provided :類似 compile ,期望 JDK 、容器或使用者會提供這個依賴。如 servlet.jar 。

runtime :只在運行時使用,如 JDBC 驅動,適用運行和測試階段。

test :只在測試時使用,用于編譯和運行測試代碼。不會隨項目發布。

???????? system :類似 provided ,需要顯式提供包含依賴的 jar , Maven 不會在 Repository 中查找它。

定義自己的結構

新建一個 archetype 項目 :

mvn archetype:create\
-DgroupId=cn.prof\
-DartifactId=prof-archetype\
-DarchetypeArtifactId=maven-archetype-archetype

?????? 主要的模板文件 : archetype-resources/pom.xml

?????? 修改其中內容

?????? 修改 META-INF/maven/archetype.xml 中定義了相關的sources

?????? 安裝此項目 : mvn install

執行下面的命令創建新目錄的項目:

mvn archetype:create -DgroupId=com.mergere.mvnbook \
-DartifactId=proficio-example\
-DarchetypeGroupId=com.xxx.mvn\
-DarchetypeArtifactId= prof-archetype \
-Darchetype
Version=1.0-SNAPSHOT




目錄說明

Maven2? Directory

目錄

二級目錄

三級目錄

四級目錄

說明

pom.xml

 

Maven2 的項目設置文件

src/

 

源碼目錄

main/

 

項目主體目錄根

java/

 

源代碼目錄

resources/

 

所需資源目錄

filters/

 

資源過濾文件目錄

assemby/

 

Assembly descriptors

config/

 

配置文件根目錄

webapp/

 

web 應用目錄

WEB-INF/

WEB-INF 目錄

test/

 

項目測試目錄根

java/

 

測試代碼目錄

resources/

 

測試所需資源目錄

filters/

 

測試資源過濾文件目錄

site/

 

與site 相關的資源目錄

target/

 

輸出目錄根

classes/

 

 

項目主體輸出目錄

test_classes/

 

項目測試輸出目錄

site/

 

項目site 輸出目錄

?

?



碰到的問題

<!---->1.?????? <!---->當 M2eclipse 插件裝上之后,會報這個錯

Eclipse is running in a JRE, but a JDK is required

Some Maven plugins may not work when importing projects or updating source folders.

解決辦法 :查看 eclipse\readme\readme_eclipse.html 里面有詳細說明,在 Selecting a workspace 這一節

創建一個快捷方式,設定目標位置為 D:\eclipse_jee\eclipse.exe -vm D:\Java\jdk1.5.0_10\bin\javaw

因為默認 vm 為 jdk\jre\bin\javaw ,直接改到 jdk 下,錯誤即可消除

?

<!---->2.?????? <!---->使用命令 mvn eclipse:eclipse–Dwtpversion=1.0之后,導入的項目 Project Facet 的 java 還是 1.4 ,而我 Eclipse 上設置的是 5.0

解決辦法 :在 pom.xml 中 plugins 加入說明就可以了

Xml代碼
  • <plugins>??
  • ????????<plugin>??
  • ???????????<artifactId>maven-compiler-plugin</artifactId>??
  • ???????????<configuration>??
  • ???????????????<source>1.5</source>??
  • ???????????????<target>1.5</target>??
  • ???????????</configuration>??
  • ????????</plugin>??
  • </plugins>??
  • view plaincopy to clipboardprint?
  • <plugins>?????????<plugin>????????????<artifactId>maven-compiler-plugin</artifactId>????????????<configuration>????????????????<source>1.5</source>????????????????<target>1.5</target>????????????</configuration>?????????</plugin>?</plugins>??
  • Xml代碼 ?
  • <plugins>?????????<plugin>????????????<artifactId>maven-compiler-plugin</artifactId>????????????<configuration>????????????????<source>1.5</source>????????????????<target>1.5</target>????????????</configuration>?????????</plugin>?</plugins>??
  • <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins>

    <!----><!----><!----><!---->

    ?

    3.?? 在使用命令mvn eclipse:eclipse 之后,import到Eclipse,然后在Eclipse項目上點右鍵,選擇插件Maven>Enable Dependency Management后,會報重復引用依賴的錯誤
    解決辦法 :再執行mvn eclipse:eclipse然后刷新Eclipse的項目,取消掉maven插件的引用依賴,錯誤就會消除

    ?

    4.?? Failure executing javac, but could not parse the error:
    編譯器 (1.5.0_10) 中出現異常。 如果在 Bug Parade 中沒有找到該錯誤,請在 Java Developer Connection (http://java.sun.com/webapps/bugreport )? 對該錯誤進行歸檔。請在報告中附上您的程序和以下診斷信息。謝謝您的合作。
    java.nio.BufferOverflowException

    ?

    ==============

    http://badwing.iteye.com/blog/1625993

    這里主要是在eclipse中使用maven,因此只使用到了一部分命令,整理下來方便以后查閱。

    生成清除Eclipse項目結構:
    mvn eclipse:eclipse
    mvn eclipse:clean

    清理(刪除target目錄下編譯內容)
    mvn clean

    僅打包Web頁面文件
    mvn war:exploded

    編譯項目
    mvn compile

    打包發布
    mvn package

    打包時跳過測試
    mvn package -Dmaven.test.skip=ture

    還有很多命令目前還沒有使用到,以后遇到再補充

    ?

    ?

    本文地址:http://blog.csdn.net/kongxx/article/details/6993501

    Maven用了很久了,命令一直記不住,其實想想就那個幾個常用的,今天寫下來,幫著記憶吧

    • 創建一個簡單的Java工程:mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example
    • 創 建一個java的web工程:mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.mycompany.app -DartifactId=my-webapp
    • 打包:mvn package
    • 編譯:mvn compile
    • 編譯測試程序:mvn test-compile
    • 清空:mvn clean
    • 運行測試:mvn test
    • 生成站點目錄: mvn site
    • 生成站點目錄并發布:mvn site-deploy
    • 安裝當前工程的輸出文件到本地倉庫: mvn install
    • 安 裝指定文件到本地倉庫:mvn install:install-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=1.0.0 -Dpackaging=jar -Dfile=<myfile.jar>
    • 查看實際pom信息: mvn help:effective-pom
    • 分析項目的依賴信息:mvn dependency:analyze 或 mvn dependency:tree
    • 跳過測試運行maven任務:?? ?mvn -Dmaven.test.skip=true XXX
    • 生成eclipse項目文件: mvn eclipse:eclipse
    • 查看幫助信息:mvn help:help 或 mvn help:help -Ddetail=true
    • 查看插件的幫助信息:mvn <plug-in>:help,比如:mvn dependency:help 或 mvn ant:help 等等。

    常用命令

    1. 創建Maven的普通java項目:?
    ?? mvn archetype:create?
    ?? -DgroupId=packageName?
    ?? -DartifactId=projectName??
    2. 創建Maven的Web項目:???
    ??? mvn archetype:create?
    ??? -DgroupId=packageName????
    ??? -DartifactId=webappName?
    ??? -DarchetypeArtifactId=maven-archetype-webapp????
    3. 編譯源代碼: mvn compile?
    4. 編譯測試代碼:mvn test-compile????
    5. 運行測試:mvn test???
    6. 產生site:mvn site???
    7. 打包:mvn package???
    8. 在本地Repository中安裝jar:mvn install?
    9. 清除產生的項目:mvn clean???
    10. 生成eclipse項目:mvn eclipse:eclipse??
    11. 生成idea項目:mvn idea:idea??
    12. 組合使用goal命令,如只打包不測試:mvn -Dtest package???
    13. 編譯測試的內容:mvn test-compile??
    14. 只打jar包: mvn jar:jar??
    15. 只測試而不編譯,也不測試編譯:mvn test -skipping compile -skipping test-compile?
    ????? ( -skipping 的靈活運用,當然也可以用于其他組合命令)??
    16. 清除eclipse的一些系統設置:mvn eclipse:clean

    http://cloudera.iteye.com/blog/424795

    maven 簡單實用教程

    1. Maven介紹

    ?

    ?

    1.1. 簡介

    ?

    java編寫的用于構建系統的自動化工具。

    目前版本是2.0.9,注意maven2和maven1有很大區別,閱讀第三方文檔時需要區分版本。

    ?

    1.2. Maven資源

    ?

    • 見官方網站;

    • The 5 minute test,官方簡易入門文檔;

    • Getting Started Tutorial,官方入門文檔;

    • Build Cookbook,官方的cookbook;

    • POM Reference,POM文件的設置參考

    • Settings Reference?,settings文件的設置參考

    • Better Builds with Maven,免費的電子書,下載需要注冊。

    ?

    1.3. Maven和Ant的區別

    ?

    Maven正在逐漸取代Ant,很多java開源軟件(Spring、Struts2 ……)已經使用maven。

    • 不需要寫復雜的處理腳本;
    • 聲明式的類庫依賴管理。

    ?

    1.4. Maven的基本功能

    ?

    • 構建:比如生成class、jar、war或者ear文件
    • 生成文檔:比如生成javadoc、網站文檔
    • 生成報告:比如junit測試報告
    • 生成依賴類庫:生成文檔,說明項目多其他軟件的依賴
    • 有關SCM:SCM(Software Configuration Management),軟件配置管理,比如版本控制,比如bug管理等等
    • 發布:生成供發布的分發包,比如生成Struts2的分發包,供提交給用戶使用
    • 部署:比如,web應用程序,自動部署到指定的服務器上

    通過我寫的商品管理的小例子,演示結合maven和svn的功能。

    ?

    2. Maven使用

    ?

    ?

    2.1. Maven的安裝和配置

    ?

    • 從官方網站下載最新的Maven分發包http://maven.apache.org/download.html,當前為2.0.9;

    • 解壓縮到本地;
    • 配置maven, 將maven/bin目錄設置到windows環境變量Path中
    • 檢查maven是否安裝成功, 在命令行中執行 mvn -version

    ?

    2.2. Maven的基本使用

    ?

    Maven的基本使用介紹通過命令行編寫簡單的java和web項目。

    ?

    2.2.1. 實現Java項目

    ?

    通過maven在命令行下創建普通java項目,也就是main方法執行的項目或者jar文件的類庫。

    ?

    2.2.1.1. 創建Maven項目

    ?

    執行:

    ?

    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輸入的項目名稱)下生成的文件和目錄:

    • 項目構建文件: pom.xml
    • 代碼框架: src\main\java\com\easymorse\App.java
    • 測試代碼: src\test\java\com\easymorse\AppTest.java

    ?

    2.2.1.2. 運行Maven項目

    ?

    命令行進入helloworld目錄Define value for artifactId輸入的項目名稱)。

    項目打包

    ?

    mvn package

    ?

    檢查命令生成了什么?

    • target目錄
    • 編譯了代碼
    • 編譯了測試代碼
    • 使用junit測試并生成的報告
    • 生成代碼的jar文件

    運行打包的jar文件:

    ?

    java -cp target\helloworld-1.0-SNAPSHOT.jar com.easymorse.App

    ?

    編譯源程序

    ?

    mvn compile

    ?

    編譯并測試

    ?

    mvn test

    ?

    清空生成的文件

    ?

    mvn clean

    ?

    將maven項目轉化為eclipse項目

    命令行運行:

    ?

    mvn eclipse:eclipse

    ?

    打開eclipse,菜單選擇:file>import>general>existing projects into workspace,在對話框中選中目錄,導入即可。

    如果要清除有關eclipse項目的配置信息:

    ?

    mvn -Dwtpversion=1.0 eclipse:clean

    ?

    聯合使用

    ?

    mvn eclipse:clean clean

    ?

    ?

    2.2.2. 實現Web項目

    ?

    通過maven在命令行下創建java web項目。

    ?

    2.2.2.1. 創建Maven項目

    ?

    在命令行輸入,這一步和創建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容器的插件:

    ?

    <build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>tomcat-maven-plugin</artifactId></plugin><plugin><groupId>org.mortbay.jetty</groupId><artifactId>maven-jetty-plugin</artifactId><version>6.1.6</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.6</source><target>1.6</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>

    ?

    • tomcat插件
    • jetty插件
    • 編譯插件的配置

    repository目錄的作用

    repository的位置,在用戶目錄的.m2目錄下。

    repository目錄的作用,對依賴類庫的緩存。

    ?

    2.2.2.2. 運行Maven項目

    ?

    項目打包

    ?

    mvn package

    ?

    啟動tomcat

    ?

    mvn tomcat:run

    ?

    啟動jetty

    ?

    mvn jetty:run

    ?

    轉化為eclipse項目

    ?

    mvn -Dwtpversion=1.5 eclipse:eclipse

    ?

    這樣生成wtp插件的web項目。

    打開eclipse,菜單選擇:file>import>general>existing projects into workspace,在對話框中選中目錄,導入即可。

    另外,需要在eclipse里創建一個classpath變量,名稱為:M2_REPO,值為系統用戶下.m2/repository目錄。

    ?

    3. POM文件的基本配置

    ?

    ?

    3.1. POM介紹

    ?

    ?

    3.1.1. 什么是POM

    ?

    Project Object Model,項目對象模型。

    通過xml格式保存的pom.xml文件。

    作用類似ant的build.xml文件,功能更強大。

    該文件用于管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目授權、項目的url、項目的依賴關系等等。

    ?

    3.1.2. 快速瀏覽

    ?

    一個完整的pom.xml文件,放置在項目的根目錄下。

    ?

    <project 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.0http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><!-- The Basics --><groupId>...</groupId><artifactId>...</artifactId><version>...</version><packaging>...</packaging><dependencies>...</dependencies><parent>...</parent><dependencyManagement>...</dependencyManagement><modules>...</modules><properties>...</properties><!-- Build Settings --><build>...</build><reporting>...</reporting><!-- More Project Information --><name>...</name><description>...</description><url>...</url><inceptionYear>...</inceptionYear><licenses>...</licenses><organization>...</organization><developers>...</developers><contributors>...</contributors><!-- Environment Settings --><issueManagement>...</issueManagement><ciManagement>...</ciManagement><mailingLists>...</mailingLists><scm>...</scm><prerequisites>...</prerequisites><repositories>...</repositories><pluginRepositories>...</pluginRepositories><distributionManagement>...</distributionManagement><profiles>...</profiles> </project>

    ?

    ?

    3.2. 基本設置

    ?

    ?

    3.2.1. 協作關系

    ?

    ?

    <project 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.0http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.codehaus.mojo</groupId><artifactId>my-project</artifactId><version>1.0</version><packaging>war</packaging> </project>

    ?

    • groupId : 組織標識,例如: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間關系

    ?

    ?

    3.2.2.1. 依賴關系

    ?

    依賴關系列表(dependency list)是POM的重要部分。

    ?

    <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.0</version><scope>test</scope></dependency>...</dependencies>

    ?

    • groupId , artifactId , version :
    • scope : compile(default),provided,runtime,test,system
    • exclusions

    如何查到依賴的類庫?

    一般可以通過這個網站:http://www.mvnrepository.com

    比如查詢hibernate,可以找到結果列表中的hibernate類庫條目。

    點擊:http://www.mvnrepository.com/artifact/org.hibernate/hibernate,

    選擇版本,比如3.2.6ga,即:http://www.mvnrepository.com/art?... /hibernate/3.2.6.ga

    復制文章中的:

    ?

    <dependency><groupId>org.hibernate</groupId><artifactId>hibernate</artifactId><version>3.2.6.ga</version> </dependency>

    ?

    到pom.xml文件中即可。

    是否還需要找到hibernate依賴的pom?

    不需要,hibernate也會有pom,maven會通過它的pom自動找到它依賴的類庫。

    ?

    3.2.2.2. 繼承關系

    ?

    繼承其他pom.xml配置的內容。

    maven提供了一個類似java.lang.Object的頂級父pom.xml文件。

    可以通過下面命令查看當前pom.xml受到超pom.xml文件的影響:

    ?

    mvn help:effective-pom

    ?

    創建一個各種項目可復用的pom.xml文件:http://easymorse.googlecode.com/svn/trunk/pom/pom.xml

    部署要復用的pom.xml文件:

    ?

    mvn install

    ?

    在自己的pom文件中繼承上述pom:

    ?

    <parent><groupId>com.easymorse</groupId><artifactId>pom</artifactId><version>0.1</version></parent>

    ?

    ?

    3.2.2.3. 聚合關系

    ?

    用于將多個maven項目聚合為一個大的項目。

    比如目錄結構如下:

    ?

    . |-- pom.xml |-- module-a`-- pom.xml |-- module-b`-- pom.xml |-- module-c`-- pom.xml |-- foo-all`-- pom.xml

    ?

    那么總的pom.xml文件類似:

    ?

    ...<modules><module>module-a</module><module>module-b</module><module>module-c</module><module>foo-all</module></modules> </project>

    ?

    參考文檔:http://maven.apache.org/plugins/maven-eclipse-plugin/reactor.html

    原文示例有誤,見:modules.rar

    ?

    3.2.3. 其他配置

    ?

    maven的屬性,是值的占位符,類似EL,類似ant的屬性,比如${X},可用于pom文件任何賦值的位置。

    有以下分類:

    • env.X:操作系統環境變量,比如${env.PATH}
    • project.x:pom文件中的屬性,比如:<project><version>1.0</version></project>,引用方式:${project.version}

    • settings.x:settings.xml文件中的屬性,比如:<settings><offline>false</offline></settings>,引用方式:${settings.offline}

    • Java System Properties:java.lang.System.getProperties()中的屬性,比如java.home,引用方式:${java.home}
    • 自定義:在pom文件中可 以:<properties><installDir>c:/apps/cargo-installs< /installDir></properties>,引用方式:${installDir}

    ?

    3.3. 其他

    ?

    ?

    3.3.1. 設置離線

    ?

    在.m2目錄下創建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"><offline>true</offline> </settings>

    ?

    ?

    3.3.2. 安裝第三方包

    ?

    經常有第三方包,因為一些原因,在網上repository上沒有,需要自己動手安裝。

    比如sun某些版本的jar文件,比如oracle的驅動。

    已oracle驅動程序為例,比如驅動路徑為c:/driver/ojdbc14.jar,是10.2.0.3.0版本

    在該網址能夠查到: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中依賴引用了:

    ?

    <dependency><groupId>com.oracle</groupId><artifactId>ojdbc14</artifactId><version>10.2.0.3.0</version> </dependency>

    ?

    ?

    3.3.3. 部署到tomcat

    ?

    tomcat配置有管理權限的用戶:conf\tomcat-users.xml

    ?

    <?xml version='1.0' encoding='utf-8'?> <tomcat-users><role rolename="manager"/><user username="marshal" password="password" roles="manager"/> </tomcat-users>

    ?

    在pom文件的tomcat插件中添加:

    ?

    <plugin><groupId>org.codehaus.mojo</groupId><artifactId>tomcat-maven-plugin</artifactId><configuration><url>http://localhost:8080/manager</url><server>myserver</server><path>/mycontext</path></configuration></plugin>

    ?

    在.m2/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"><servers><server><id>myserver</id><username>marshal</username><password>password</password></server></servers> </settings>

    ?

    運行打包部署,在maven項目目錄下:

    ?

    mvn tomcat:deploy

    ?

    然后訪問:http://localhost:8080/mycontext/?即可。

    撤銷部署:

    ?

    mvn tomcat:undeploy

    ?

    啟動web應用:

    ?

    mvn tomcat:start

    ?

    停止web應用:

    ?

    mvn tomcat:stop

    ?

    重新部署:

    ?

    mvn tomcat:redeploy

    ?

    部署展開的war文件:

    ?

    mvn war:exploded tomcat:exploded

    ?

    ?

    3.3.4. 未講到的內容

    ?

    • settings.xml的配置
    • pom.xml的詳細配置
    • 自定義插件的方法:http://maven.apache.org/plugins/maven-archetype-plugin/examples/archetype.html

    • 自定義goal的執行:<preGoal><postGoal>

    • 插件的查詢和使用
    • 搭建鏡像repository
    • 在maven中調用ant

    ?

    總結

    以上是生活随笔為你收集整理的Maven2 的常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。