下面是一些使用maven2過程當(dāng)中的總結(jié),有一些來自網(wǎng)絡(luò),恕不一一提名。
最后提到兩個(gè)問題,是我一直沒有解決的,如果有用maven2的朋友也遇到那兩個(gè)問題,還請(qǐng)幫忙指導(dǎo)一下。
【常用命令】
mvn archetype:generate //創(chuàng)建 Maven 項(xiàng)目
mvn compile //編譯源代碼
mvn test-compile //編譯測(cè)試代碼
mvn test //運(yùn)行應(yīng)用程序中的單元測(cè)試
mvn site //生成項(xiàng)目相關(guān)信息的網(wǎng)站
mvn clean //清除目標(biāo)目錄中的生成結(jié)果
mvn package //依據(jù)項(xiàng)目生成 jar 文件
mvn install //在本地 Repository 中安裝 jar
mvn eclipse:eclipse //生成 Eclipse 項(xiàng)目文件
【生成項(xiàng)目】
JAVA項(xiàng)目 mvn archetype:generate -DgroupId=com.demo -DartifactId=App
web 項(xiàng)目 mvn archetype:generate -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp
【生成eclipse項(xiàng)目】
普通eclipse項(xiàng)目 mvn eclipse:eclipse
eclipse WTP項(xiàng)目 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 基本節(jié)點(diǎn)】
<project> 根節(jié)點(diǎn)
<modelversion> pom.xml 使用的對(duì)象模型版本
<groupId> 創(chuàng)建項(xiàng)目的組織或團(tuán)體的唯一 Id
<artifactId> 項(xiàng)目唯一Id, 項(xiàng)目名
<packaging> 打包擴(kuò)展名(JAR、WAR、EAR)
<version> 項(xiàng)目版本號(hào)
<name> 顯示名,用于生成文檔
<url> 組織站點(diǎn),用于生成文檔
<description> 項(xiàng)目描述,用于生成文檔
<dependency>之<scope> 管理依賴部署
<scope> 可使用 5 個(gè)值:
compile 缺省值,用于所有階段,隨項(xiàng)目一起發(fā)布
provided 期望JDK、容器或使用者提供此依賴。如servlet.jar
runtime 只在運(yùn)行時(shí)使用
test 只在測(cè)試時(shí)使用,不隨項(xiàng)目發(fā)布
system 需顯式提供本地jar,不在代碼倉庫中查找
【庫版本選擇】
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>[1.1,)</version>
</dependency>
表達(dá)式 含義
(,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
【定義自己的結(jié)構(gòu)】
1、新建 archetype 項(xiàng)目(模板項(xiàng)目):
mvn archetype:genera -DgroupId=org.simple -DartifactId=simple -DarchetypeArtifactId=maven-archetype-archetype
2、修改主要模板文件:archetype-resources/pom.xml
1)修改 META-INF/maven/archetype.xml 中相關(guān)的 sources
2)安裝此項(xiàng)目:mvn install
3、根據(jù)模板項(xiàng)目創(chuàng)建新項(xiàng)目:
mvn archetype:generate
-DarchetypeGroupId=org.simple"
-DarchetypeArtifactId= simple "
-DarchetypeVersion=1.0-SNAPSHOT
【安裝私有庫】
1、復(fù)制 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>
如果有依賴關(guān)系,可以將依賴關(guān)系描述在 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打開文件:文檔->參數(shù)設(shè)置->文件->UTF-8簽名->總是移除簽名->確定->另存為UTF8文件
一些問題:
1、UTF8編碼的文件安裝成archetype項(xiàng)目后,再照此模板生成新項(xiàng)目會(huì)有些中文字符不識(shí)別,不知道如何改
2、UTF8編碼的文件安裝成archetype項(xiàng)目后,如果同時(shí)安裝了gif圖片,再照此模板生成新項(xiàng)目時(shí)gif文件損壞,但在安裝在rep中的模板項(xiàng)目中的gif文件是好的。