下面是一些使用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文件是好的。