2014年5月21日 星期三

[Maven] 常用資訊

Maven2 的運行命令為: mvn ,

常用命令為:

mvn archetype:create :創建Maven 項目

mvn compile :編譯源代碼

mvn test-compile :編譯測試代碼

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

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



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

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

(忽略單元測試:mvn -Dtest -DfailIfNoTests=false package)

mvn install :在本地Repository 中安裝jar

(mvn install:install-file -DgeneratePom=true -DgroupId=com.shunwang.swpay -DartifactId=swpay -Dversion=0.0.1 -Dpackaging=jar -Dfile=F:/新框架/swframe.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 以上版本均可用)

在Eclipse 裡面file>import

然後選擇General>Existing Projects into Workspace(如果安裝了maven插件這個地方選擇maven project,然後下一步找到pom.xml文件)

設置maven 的路徑變量M2_REPO

Window -> Preferences -> Java -> Build Path -> Classpath Variables

New Name 命名: M2_REPO

路徑:本地的maven 類庫地址

這里為C:/Documents and Settings/{ 你的系統登錄用戶名}/.m2/repository(自定義設置的倉庫:修改.setting.xml文件C:/Java/Tools/apache-maven-2.0 .8/M2Repository 並讓ide內的setting.xml文件設置指向你得這個文件)

注意事項:
1、Maven默認的remote repository是ibiblio.org,這個地方有些人上不去,因此要更改一下 ​​。
Maven找尋配置參數的默認的順序是從maven.jar中的defaults.properties開始。打開該文件,修改:
maven.repo.remote = http://apache.linuxforum.net/dist/java-repository , http://dist.codehaus.org , http://mirrors.sunsite.dk/maven/ , http://public.planetmirror.com/pub/maven , http://www.ibiblio.org/maven

可在以下兩個網站查閱:http://mvnrepository.com/,http://repo1.maven.org/maven2/

2、Maven默認的本地文件保存在Document and Setting的user.home裡面,非常不便。
在%MAVEN_HOME%下建立一個local目錄,將本地的repostiory保存在此,以免重裝系統丟失。
maven.home.local = ${maven.home}/local
3、Maven的提示語言在中文環境中可能出現亂碼,進入maven.jar,
發現org/apache/maven/messages目錄下的messages_zh_CN.properties裡面直接寫了中文字符。刪掉它!就不會亂碼了。
(或者用native2ascii轉換)

4、Maven中最大的麻煩之處就是不能從Maven存儲庫中獲取Sun的jar文件。這個問題歸因於Sun在其代碼中設置的許可證限制。解決這個問題的辦法有兩種,一種是下載這些代碼並將它們安裝在您本地的存儲庫中,另一種是做一個外部聲明,並將這個聲明指向文件系統中依賴項所在的位置。希望Sun能夠儘早地創建自己的存儲庫,儘管如此,Maven也會被升級來使之能夠下載這些資源,只是在下載之前它會提示用戶接受許可證協議。

5、另外一個麻煩的地方就是有時候使用的最新的庫文件可能在遠程存儲庫中不存在。另一種可能是由於無法訪問Internet,需要所有的依賴項都能在本地獲取。這些問題的最好解決方案就是將jar文件安裝到本地的存儲庫中。將本地的存儲庫放在一台web服務器上也同樣是個便利之舉,這樣整個開發團隊就能從此獲益,每個人都沒有必要去管理自己的存儲庫了。改變Maven的存儲庫路徑只需簡單地編輯其安裝目錄下conf文件夾下面的settings.xml文件即可。

IDE下的問題

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之後,import到Eclipse,然後在Eclipse項目上點右鍵,選擇插件Maven>Enable Dependency Management後,會報重複引用依賴的錯誤
解決辦法:再執行mvn eclipse:eclipse然後刷新Eclipse的項目,取消掉maven插件的引用依賴,錯誤就會消除

3. 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
解決辦法:(臨時)在控制面板中將區域與語言選項中,把當地語言設為英語

[自動下載dependency 對應的 javadoc or source]
From the Maven Eclipse Plugin FAQ

mvn eclipse:eclipse -DdownloadSources=true  -DdownloadJavadocs=true
or in your pom.xml: ==> View

沒有留言 :

張貼留言