下面是一些使用maven2過程當中的總結,有一些來自網絡,恕不一一提名。
最后提到兩個問題,是我一直沒有解決的,如果有用maven2的朋友也遇到那兩個問題,還請幫忙指導一下。
【常用命令】
mvn archetype:generate //創建 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:generate -DgroupId=com.demo -DartifactId=App
web 項目 mvn archetype:generate -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
Window->Preferences->Java->Build Path->Classpath Variables
New Name 命名:M2_REPO
路徑:本地的 maven 類庫地址(%USER_HOME%/.m2/repository)
【pom.xml 基本節點】
<project> 根節點
<modelversion> pom.xml 使用的對象模型版本
<groupId> 創建項目的組織或團體的唯一 Id
<artifactId> 項目唯一Id, 項目名
<packaging> 打包擴展名(JAR、WAR、EAR)
<version> 項目版本號
<name> 顯示名,用于生成文檔
<url> 組織站點,用于生成文檔
<description> 項目描述,用于生成文檔
<dependency>之<scope> 管理依賴部署
<scope> 可使用 5 個值:
compile 缺省值,用于所有階段,隨項目一起發布
provided 期望JDK、容器或使用者提供此依賴。如servlet.jar
runtime 只在運行時使用
test 只在測試時使用,不隨項目發布
system 需顯式提供本地jar,不在代碼倉庫中查找
【庫版本選擇】
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>[1.1,)</version>
</dependency>
表達式 含義
(,1.0] version<=1.0
[1.2,1.3] 1.2<=version<=1.3
[1.0,2.0) 1.0<=version<2.0
[1.5,) 1.5<=version
(,1.1),(1.1,) version!=1.1
【定義自己的結構】
1、新建 archetype 項目(模板項目):
mvn archetype:genera -DgroupId=org.simple -DartifactId=simple -DarchetypeArtifactId=maven-archetype-archetype
2、修改主要模板文件:archetype-resources/pom.xml
1)修改 META-INF/maven/archetype.xml 中相關的 sources
2)安裝此項目:mvn install
3、根據模板項目創建新項目:
mvn archetype:generate
-DarchetypeGroupId=org.simple"
-DarchetypeArtifactId= simple "
-DarchetypeVersion=1.0-SNAPSHOT
【安裝私有庫】
1、復制 mylib-1.2.3.jar 到本地代碼庫
2、編寫 mylib-1.2.3.pom 文件:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mylib</groupId>
<artifactId>mylib</artifactId>
<version>1.2.3</version>
</project>
如果有依賴關系,可以將依賴關系描述在 pom 中
3、用Ant 來生成 jar 包和 pom 文件的 checksum 文件:
build.xml:
<project default="checksum">
<target name="checksum">
<checksum file="mylib-1.2.3.jar" algorithm="SHA" fileext=".sha1"/>
<checksum file="mylib-1.2.3.pom" algorithm="SHA" fileext=".sha1"/>
</target>
</project>
4、生成 mylib-1.2.3.jar.sha1 和 mylib-1.2.3.pom.sha1 文件
ant build.xml
【使用版本控制】
提交:mvn scm:checkin -Dmessage="Message"
檢出:mvn scm:checkout
更新:mvn scm:update
【UTF8編碼編譯失敗】
editplus打開文件:文檔->參數設置->文件->UTF-8簽名->總是移除簽名->確定->另存為UTF8文件
一些問題:
1、UTF8編碼的文件安裝成archetype項目后,再照此模板生成新項目會有些中文字符不識別,不知道如何改
2、UTF8編碼的文件安裝成archetype項目后,如果同時安裝了gif圖片,再照此模板生成新項目時gif文件損壞,但在安裝在rep中的模板項目中的gif文件是好的。