随笔-112  评论-73  文章-0  trackbacks-0

Maven2

认识一下Maven2

For Eclipse 插件

运行Maven2

其他技巧

认识一下Maven2

经过几天的折腾,终于对Maven2有了一个简单的了解。赶紧记下,以备查也同时给正在折腾中的朋友做个参考。

Maven2的最新版本可以在apache的网站上下载得到http://maven.apache.org/。 Maven2是apache的一个项目。下载后解压到硬盘的一个目录下,如:d:\java\maven,然后将d:\java\maven\bin加入到path变量中,以便于在任何目录都可以使用命令。

运行mvn -version命令,会显示当前maven的版本信息。这样maven就安装成功了。

接下来就是让Maven为我们干活了。但是怎么用呢?在网上好一顿搜,发现大部分文章都是转来转去。没说明白的地方都没说明白。(可能是我的理解能力有关)

最后在一个网站上找到一个英文教程。在这个网站上注册之后就可以下载了。http://www.mergere.com/ 写得比较详细。按照文章的指导生成简单的工程是没有问题的。最令我吃惊的通过一个命令就可以生一个项目的网站。同apache上的一样哦。

先看看:


唯一不爽的就是不知道怎么生成中文的网站。


下面我们就简单的学习几个命令:

建一个新的工程

C:\project> mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

这个命令会在当前目录创建一个JAVA工程。目录名称为my-app。目录结构如下:


编译

C:\project\my-app> mvn complie

这个命令一定在工程的根目录下执行。就是与pom.xml平级的目录。

测试

C:\project\my-app> mvn test

打包

C:\project\my-app> mvn package

生成站点

C:\project\my-app> mvn site

创建一个WEB工程

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp



详细的内容还是看原文的文档吧。如果那位英文比较翻译一下。记得通知我一下:)



Maven2 for eclipse 的插件:

插件的更新地址:http://m2eclipse.codehaus.org/

可以在eclipse的更新中下载此插件。

直接在此网站上下载,下来的jar包只有1k,不能用.在线更新大概有9M多.速度还是很慢的..

经过N次试验发现这个插件有一个小小的问题:maven的资源库必须是默认的路径,就是${userhome}/.m2.repository。如果不是这个路径eclispse 中插件的设置界面无法打开。


Maven2 for eclipse插件是通过外部扩展工具执行Maven相关命令的.


一、运行环境设置

在安装好Maven插件的Eclipse中,在工程上点右键会有一个Maven菜单


选中Enable之后,输入Group Id 等信息,如图:


现在就可以在工程中应用maven2 了。在打开的pom.xml编辑器中或maven2菜单中选择add dependency .在查询的对话框中输入要加入的jar的group id 即可自动列出各个版本的jar 可以选择。


选择好后在pom.xml文件中就会自动添加依赖关系代码:

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.0</version>

</dependency>

如果在列出的版本中没有想要的最新时,可以直接将pom.xml文件中的版本改成想要的版本,如果该Jar在Maven中发布了最新版本就可以直接下来了。下载是在编译工程时自动进行的。

我将Junit中的版本改为4.1之后下载下来的就是最新的4.1版。


运行Maven2

在eclilpse 是通过外部工具来运行maven2 的命令的。

在 运行 菜单中 选择外部工具 就会出现 外部工具运行配置对话框


将base directory 设置成工程的要目录,然后在goals 中选择想要运行的任务就可以了。


其他技巧

1、跳过测试

只要在命令行中输入命令后面加上参数 -Dmaven.test.skip=true

例如:

mvn package -Dmaven.test.skip=true

2、测试Hibernate程序,hibernate.cfg.xml应该放到src/test/resources目录,这样测试类编译后才能够找到hibernate.cfg.xml并运行。

3、maven 中引用系统变量

这是官方的解释:

Properties are the last required piece in understanding POM basics. Maven properties are value placeholder, like properties in Ant. Their values are accessible anywhere within a POM by using the notation ${X}, where X is the property. They come in five different styles:

  1. env.X: Prefixing a variable with "env." will return the shell's environment variable. For example, ${env.PATH} contains the $path environment variable (%PATH% in Windows).
  2. project.x: A dot (.) notated path in the POM will contain the corresponding element's value. For example: <project><version>1.0</version></project> is accessible via ${project.version}.
  3. settings.x: A dot (.) notated path in the settings.xml will contain the corresponding element's value. For example: <settings><offline>false</offline></settings> is accessible via ${settings.offline}.
  4. Java System Properties: All properties accessible via java.lang.System.getProperties() are available as POM properties, such as ${java.home}.
  5. x: Set within a <properties /> element. The value may be used as ${someVar}.

1、如果引用系统属性中的变量需要在前面加上env前缀

2、如果想引用工程中定义元素,使用${project.XXX}这个名称是根据xml的元素定义的。

3、在setting.xml中设置的内容可以通过${settings.XXX}来引用
4、系统变量可以直接引用
5、在<properties/>中定义的变量直接使用就可以了。

posted on 2007-05-20 18:38 Libo 阅读(3481) 评论(5)  编辑  收藏

评论:
# re: Maven2 2007-06-07 11:43 | Angi
您好!
看了您的文章受益匪浅
同时有个疑问想请教
Maven Integration for Eclipse 和MevenIDE之间是何关系?  回复  更多评论
  
# re: Maven2 2007-06-08 10:11 | 鱼肠剑
这个是什么关系还真不知道.  回复  更多评论
  
# re: Maven2 2007-06-18 00:45 | hyysguyang@163.com
maven的资源库必须是默认的路径,就是${userhome}/.m2.repository。


这个限制很槽糕的,0.0.4都没有限制,没想到0.0.10居然就变成这样了,真是郁闷.居然越来越退步了  回复  更多评论
  
# re: Maven2 2007-07-06 10:50 | link
受益匪浅.写的很好.  回复  更多评论
  
# re: Maven2 2007-09-03 20:08 | 怎一个愁字了得
请問ant & maven 到底有什么用途啊?一直不得其解......

我从来没用过,也一样做项目啊。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: