maven2使用

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

    

猜你喜欢