日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Maven常用命令

系統 2905 0

1、常用命令
mvn compile
編譯主程序源代碼,不會編譯test目錄的源代碼。第一次運行時,會下載相關的依賴包,可能會比較費時。

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

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

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

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

mvn package
依據項目生成 jar 文件,打包之前會進行編譯,測試。

mvn install
在本地 Repository 中安裝 jar。

mvn eclipse:eclipse
生成 Eclipse 項目文件及包引用定義,注意,需確保定義Classpath Variables: M2_REPO,指向本地maven類庫目錄。

?

?

使 maven2 下載 依賴包的同時 下載 源代碼 包的方法:

使用 maven命令

mvn dependency:sources 下載 依賴包的 源代碼

?

?


2、pom.xml 說明

<? xml?version="1.0"?encoding="UTF-8" ?>
< project >
????
< modelVersion > 4.0.0 </ modelVersion >
????
< groupId > com.tutorial.struts2 </ groupId >
????
< artifactId > tutorial </ artifactId >
????
< packaging > war </ packaging >
????
< version > 1.0-SNAPSHOT </ version >
????
< name > Struts?2?Starter </ name >
????
< url > http://www.myComp.com </ url >
????
< description > Struts?2?Starter </ description >
????
< dependencies >
????????
<!-- ?Junit? -->
????????
< dependency >
????????????
< groupId > junit </ groupId >
????????????
< artifactId > junit </ artifactId >
????????????
< version > 4.4 </ version >
????????????
< scope > test </ scope >
????????
</ dependency >

????????
< dependency >
????????????
< groupId > org.springframework </ groupId >
????????????
< artifactId > spring </ artifactId >
????????????
< version > 2.5.5 </ version >
????????
</ dependency >
????
</ dependencies >
</ project >

說明:
modelversion pom.xml 使用的對象模型版本
groupId 創建項目的組織或團體的唯一 Id
artifactId> 項目唯一Id, 項目名
packaging 打包擴展名(JAR、WAR、EAR)
version 項目版本號
name 顯示名,用于生成文檔
url 組織站點,用于生成文檔
description 項目描述,用于生成文檔
dependency之scope 管理依賴部署,取值如下:
  compile 缺省值,用于所有階段,隨項目一起發布;
  provided 期望JDK、容器或使用者提供此依賴。如servlet.jar;
  runtime 只在運行時使用;
  test 只在測試時使用,不隨項目發布;
  system 需顯式提供本地jar,不在代碼倉庫中查找;


3、創建Maven Web項目
?mvn archetype:generate -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp
groupId 組織名,對應項目的package;artifactId 項目名;archetypeArtifactId 項目類型

?

mvn?-Declipse.workspace=c:\eclipse\workspace?eclipse:add- maven -repo??

?

為給eclipse指定工作空間。"c:\eclipse\workspace "即eclipse的workspace

  1. mvn?eclipse:eclipse??

為項目造成eclipse工程文件。即將 maven 項目轉化為一個eclipse工程

  1. mvn?–o?war:exploded? 離線發布修改過的jsp等工程文件
mvn?–o? package ?–Dmaven.test.skip= true ??

離線打包工程,不含測試代碼

  1. mvn?compile?hibernate3:hbm2ddl?? 會通過hibernate映射文件創建數據庫表。


    mvn –o appfuse:gen –Dentity=Teacher
    mvn –o appfuse:install –Dentity=Teacher
    通過appfuse框架自動生成與實體類對應的dao,service,action,test、jsp等程序文件

    mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=D:\Test\ssh\WebRoot\WEB-INF\lib\jta.jar
    將本地jar包安裝到應用中去。"D:\Test\ssh\WebRoot\WEB-INF\lib\jta.jar"即本地包

Maven2 的運行命令為 : mvn ,
常用命令為 :

???????????? 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 \
-DarchetypeVersion=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 輸出目錄

?

?

?

?


?

?

?


??? 在Maven2中有了明確的生命周期概念,而且都提供與之對應的命令,使得項目構建更加清晰明了。主要的生命周期階段:

?

?

??? validate,驗證工程是否正確,所有需要的資源是否可用。
compile,編譯項目的源代碼。
test-compile,編譯項目測試代碼。
test,使用已編譯的測試代碼,測試已編譯的源代碼。
package,已發布的格式,如jar,將已編譯的源代碼打包。
integration-test,在集成測試可以運行的環境中處理和發布包。
verify,運行任何檢查,驗證包是否有效且達到質量標準。
install,把包安裝在本地的repository中,可以被其他工程作為依賴來使用
deploy,在整合或者發布環境下執行,將最終版本的包拷貝到遠程的repository,使得其他的開發者或者工程可以共享。
generate-sources,產生應用需要的任何額外的源代碼,如xdoclet。
如果要執行項目編譯,那么直接輸入:mvn compile即可,對于其他的階段可以類推。階段之間是存在依賴關系(dependency)的,如test依賴test-compile。在執行 mvn test時,會先運行mvn test-compile,然后才是mvn test

因為maven2 是有生命周期這一概念的,所以如果你執行package,相應的以前步驟,如compile,test等都會自動執行。
剛開始執行會比較慢,需要從maven2遠程庫中下載所有的文件到本地。如果你的本地沒有相應的依賴包,則每次maven都會去遠程下載,所以配置一個鏡像庫就比較重要了。

?

?

碰到的問題

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>?
<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
解決辦法 :(臨時)在控制面板中將區域與語言選項中,把當地語言設為英語
(為什么我還會出現這個問題?請指教)

?

?

Maven常用命令


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 陆川县| 饶阳县| 罗山县| 邵阳市| 博客| 双鸭山市| 丰原市| 黄冈市| 英山县| 塔河县| 海门市| 岫岩| 张家港市| 红安县| 长沙市| 河北省| 思南县| 铜梁县| 台安县| 惠水县| 安化县| 九龙城区| 新野县| 博兴县| 崇仁县| 西丰县| 蒙城县| 诸城市| 祁门县| 铅山县| 马鞍山市| 孝感市| 盐池县| 姜堰市| 南涧| 兴山县| 文化| 和林格尔县| 城固县| 白山市| 泾川县|