起走时间

我的首页
文章
相册
圈子
留言
管理
 
    当前所在页面:首页>>文章>>使用MAVEN管理项目入门参考(一)
使用MAVEN管理项目入门参考(一)
    作者:威廉姆 来源:http://www.easyjf.com/ 发表时间:2007-11-27

 
 
关键字:JAVA MAVEN 项目管理 Jars Dependency
概 要:
JAVA界,可能大家比较熟悉ANT,它提供了强大的功能,让我们的开发工作变得如此有趣,APACHE又推出了新一代项目管理工具——MAVEN。它提供了比ANT更强大的管理功能,可以使用命令行工具来生成一个新的项目,管理已存在项目中的相关依赖JAR文件。关于更多MAVEN相关介绍,请参考官网http://maven.apache.org/
在网上搜索发现众多开源团队中有一个国内开源团队也使用了MAVEN管理项目,并可以基于框架来生成项目原型。
    本文以新建一个项目为实例,讲解MAVEN的基本应用。
 
所需软件:
apache maven    http://maven.apache.org/
 
 
作者的应用环境:
Microsoft Windows [Version 5.2.3790]
java version "1.5.0_10"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode)
 
一、             MAVEN安装
a)      下载MAVEN
b)      安装MAVEN
c)      测试安装结果
二、             MAVEN生成一个全新的应用骨架
a)      生成项目骨架
b)      测试生成的应用
三、             Eclipse和Maven工具开发
a)      导入项目到eclipse
b)      Maven for Eclipse plugin 安装
c)      新建一个Product的Action
 
 
 
 
 
http://maven.apache.org 可以下载maven 的命令行工具;
 
 
一、MAVEN安装
 
1.1         下载MAVEN

 

打开以下页面

我来自中国,所以系统认识到要提供一个中国的镜像下载该文件。

 

由于我点击了上面的链接,所以出现了一个下载文件保存的提示,选择保存到

1.1         安装MAVEN到计算机
 
解压到当前目录下面Z:\usr\local\maven\maven-2.0.7-bin\maven-2.0.7
目录结构如下:
设置到系统的PATH环境变量里面
 
点击桌面我的电脑右键,在弹出的上下文菜单上点击属性

在弹出的系统属性选项中选择

在下图的系统变量里搜索PATH的变量,然后在前面加上MAVEN的bin目录地址。

好,如果没有什么意外MAVEN应该是安装到了你的系统里了。



 

 

输入mvn -v

如果出现Maven版本号和JAVA版本号及操作系统名等标识,证明你的MAVEN已安装成功了。

二、用MAVEN生成一个全新的应用骨架

上面提到了国内有一个开源团队使用了MAVEN,并且提供了生成项目骨架的能力。

和上面的方式一样,打开一个命令行窗口,转到一个没有空格的目录。

2.1  生成项目骨架

运行:

Mvn archetype:create –DarchetypeGroupId=com.easyjf.easyjweb –DremoteRepositories=http://dl.easyjf.com/maven2 –DarchetypeArtifactId=easyjweb-basic-initial –DarchetypeVersion=1.0 –DgroupId=com.mycompany.project –DartifactId=mynewappname

批处理文件下载

 

[INFO] Scanning for projects...

[INFO] Searching repository for plugin with prefix: 'archetype'.

[INFO] ----------------------------------------------------------------------------

[INFO] Building Maven Default Project

[INFO]    task-segment: [archetype:create] (aggregator-style)

[INFO] ----------------------------------------------------------------------------

[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.

[INFO] Setting property: velocimacro.messages.on => 'false'.

[INFO] Setting property: resource.loader => 'classpath'.

[INFO] Setting property: resource.manager.logwhenfound => 'false'.

[INFO] **************************************************************

[INFO] Starting Jakarta Velocity v1.4

...省去N行提示信息

[INFO] ********************* End of debug info from resources from generated POM ***********************

[INFO] Archetype created in dir: Z:\usr\local\workspace\mynewapp

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESSFUL

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 5 seconds

[INFO] Finished at: Tue Nov 27 10:29:12 GMT+08:00 2007

[INFO] Final Memory: 5M/9M

[INFO] ------------------------------------------------------------------------

 

生成成功了!

Z:\usr\local\workspace\mynewapp\pom.xml

Z:\usr\local\workspace\mynewapp\src

Z:\usr\local\workspace\mynewapp\src\main

Z:\usr\local\workspace\mynewapp\src\test

Z:\usr\local\workspace\mynewapp\src\main\java

Z:\usr\local\workspace\mynewapp\src\main\resources

Z:\usr\local\workspace\mynewapp\src\main\webapp

Z:\usr\local\workspace\mynewapp\src\main\java\log4j.properties

Z:\usr\local\workspace\mynewapp\src\main\resources\README.txt

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF

Z:\usr\local\workspace\mynewapp\src\main\webapp\favicon.ico

Z:\usr\local\workspace\mynewapp\src\main\webapp\index.html

Z:\usr\local\workspace\mynewapp\src\main\webapp\robots.txt

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\web.xml

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\lib

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\classes

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\views

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\lib\README.txt

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\classes\README.txt

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\views\README.txt

Z:\usr\local\workspace\mynewapp\src\test\java

Z:\usr\local\workspace\mynewapp\src\test\java\com

Z:\usr\local\workspace\mynewapp\src\test\java\com\myeasyjf

Z:\usr\local\workspace\mynewapp\src\test\java\com\myeasyjf\initial

Z:\usr\local\workspace\mynewapp\src\test\java\com\myeasyjf\initial\HelloEasyJWebTest.java

 

其中根目录下有src目录和pom.xml文件,src里为所有项目代码相关的文件;

Pom.xml文件为maven的项目定义文件;

Src\main\java下为项目的源码包存放路径;

Src\main\resources下为项目要使用的资源;

Src\main\webapp下为WEB项目的根目录,可以把本目录直接放到WEB容器的WEB应用目录即可直接启动该应用。

 

 

2.2  测试生成的应用

 

生成了以上结构的文件,一个可以运行easyjweb的最小应用骨构,我们可以从这里直接启动它来测试我们生成的代码是否可以正常运行。

进入刚才生成的mynewapp目录

运行:

mvn jetty:run

[INFO] Scanning for projects...

[INFO] Searching repository for plugin with prefix: 'jetty'.

[INFO] ----------------------------------------------------------------------------

[INFO] Building MyEasyjweb Initial Application

[INFO]    task-segment: [jetty:run]

[INFO] ----------------------------------------------------------------------------

[INFO] Preparing jetty:run

 

 

1.1         测试安装结果

从开始->运行输入cmd打开WINDOWS的命令行窗口

启动成功了,打开浏览器

http://localhost:82/

由于在easyjweb中设置了web服务器的端口为82,而http的默认端口为80,所以需要在地址栏后加上修改后的端口号码才可以正常访问服务器。

 

    这个生成的初使骨构已具备了处理基本页面的能力,可以通过新建一个Action和视图模板,来展示页面和程序相结合的使用。

三、EclipseMaven工具开发

 

3.1 Maven for Eclipse plugin 安装

请参考本文:http://maven.apache.org/plugins/maven-eclipse-plugin/source-repository.html

 

3.2 导入项目到IDE(Eclipse)

Z:\usr\local\workspace\mynewapp下运行

Mvn eclipse:eclipse

 

 

Z:\usr\local\workspace\mynewapp>mvn eclipse:eclipse

[INFO] Scanning for projects...

[INFO] Searching repository for plugin with prefix: 'eclipse'.

[INFO] ----------------------------------------------------------------------------

[INFO] Building MyEasyjweb Initial Application

[INFO]    task-segment: [eclipse:eclipse]

[INFO] ----------------------------------------------------------------------------

[INFO] Preparing eclipse:eclipse

[INFO] [antrun:run {execution: copy-sources}]

[INFO] Executing tasks

[INFO] Executed tasks

[INFO] [eclipse:eclipse]

[INFO] Using source status cache: Z:\usr\local\workspace\mynewapp\target\mvn-eclipse-cache.properties

[INFO] Wrote settings to Z:\usr\local\workspace\mynewapp\.settings\org.eclipse.jdt.core.prefs

[INFO] Wrote Eclipse project for "my-easyjweb-initial-test" to Z:\usr\local\workspace\mynewapp.

[INFO]

       Sources for some artifacts are not available.

       Please run the same goal with the -DdownloadSources=true parameter in order to check remote repositories for sources.

       List of artifacts without a source archive:

         o javax.transaction:jta:1.0.1B

         o aspectj:aspectjrt:1.5.3

         o org.hibernate:hibernate-annotations:3.2.1.ga

         o org.mortbay.jetty:servlet-api-2.5:6.1.4

         o com.google.code.guice:guice:1.0

         o net.sf.ehcache:ehcache:1.2.3

         o org.apache.derby:derby:10.2.2.0

         o jboss:jboss-archive-browsing:5.0.0alpha-200607201-119

         o org.apache.derby:derbynet:10.2.2.0

         o ant:ant:1.6.5

         o com.easyjf.dbo:easydbo:0.9.1

         o commons-lang.commons-logging:commons-logging:1.1

         o jboss:javassist:3.3.ga

         o org.hibernate:hibernate-entitymanager:3.2.1.ga

         o org.mortbay.jetty:jetty:6.1.4

         o commons-logging:commons-logging:1.0.4

         o log4j:log4j:1.2.14

         o org.mortbay.jetty:jetty-util:6.1.4

         o asm:asm:1.5.3

         o com.easyjf.easyjweb:easyjweb-core:1.0

         o asm:asm-attrs:1.5.3

         o junit:junit:4.1

         o commons-fileupload:commons-fileupload:1.0

 

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESSFUL

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 9 seconds

[INFO] Finished at: Tue Nov 27 11:04:01 GMT+08:00 2007

[INFO] Final Memory: 6M/12M

[INFO] ------------------------------------------------------------------------

 

Z:\usr\local\workspace\mynewapp>

成功生成了eclipse所需的项目配置文件

    3.3 新建一个ProductAction

 

建立Z:\usr\local\workspace\mynewapp\src\main\java\com\easyjweb\action\ProductAction.

因为放在默认的com.easyjweb.action包下面可以不用配置就能直接运行。

 

内容如下:

 

package com.easyjweb.action;

 

import com.easyjf.web.Module;

import com.easyjf.web.Page;

import com.easyjf.web.WebForm;

 

public class ProductAction extends com.easyjf.web.core.AbstractCmdAction {

    public Page doInit(WebForm form, Module module) {

        return doIndex(form);

    }

    public Page doIndex(WebForm form) {

        form.addResult("productName", "IBM T60");

        form.addResult("price", "1.9 W");

        return new Page("/product/index.html");

    }

    

}

建立

Z:\usr\local\workspace\mynewapp\src\main\webapp\WEB-INF\views\product\index.html

模板文件

内容如下:



    

       

    

    

       我心爱的:$!{productName} ,花掉我$!{price} 



运行mvn jetty:run

打开浏览器

http://localhost:82/product.ejf?easyJWebCommand=index

 

 

 

 

本文相关附件下载
 
 

(阅读 )   评论数(:27)
评论】 【收藏】
评论:共26条
Su http://www.chalets-en-madrid.trenibuti.info oggi http://www.alimentos.trenibuti.info berlusconi http://www.alcazar-de-san-juan.trenibuti.info cento,.
评论人: ...     评论时间: 2008-02-17 15:52:28
评论人: ...     评论时间: 2008-02-24 22:03:17
评论人: ...     评论时间: 2008-02-25 07:06:07
评论人: ...     评论时间: 2008-02-25 15:44:49
评论人: ...     评论时间: 2008-02-25 23:46:55
评论人: ...     评论时间: 2008-02-26 07:25:03
评论人: ...     评论时间: 2008-02-26 15:02:07
评论人: ...     评论时间: 2008-02-26 22:14:37
评论人: ...     评论时间: 2008-02-27 05:11:00
评论人: ...     评论时间: 2008-02-27 12:20:49
评论人: ...     评论时间: 2008-02-27 19:07:48
评论人: 匿名用户     评论时间: 2008-03-02 11:21:24
评论人: ...     评论时间: 2008-03-04 03:22:39
评论人: ...     评论时间: 2008-03-04 18:22:32
评论人: ...     评论时间: 2008-03-05 08:48:48
评论人: ...     评论时间: 2008-03-06 01:02:34
评论人: ...     评论时间: 2008-03-06 17:15:11
评论人: ...     评论时间: 2008-03-06 17:17:43
评论人: ...     评论时间: 2008-03-07 04:58:26
评论人: ...     评论时间: 2008-03-07 05:10:35
评论人: ...     评论时间: 2008-03-07 14:44:19
评论人: ...     评论时间: 2008-03-07 14:45:36
评论人: ...     评论时间: 2008-03-08 00:18:02
评论人: ...     评论时间: 2008-03-08 00:19:04
评论人: ...     评论时间: 2008-03-08 08:29:13
评论人: ...     评论时间: 2008-03-08 08:30:27

发表评论:
发表人:
评论: 
    
 
关于我们 | 诚聘英才 | 联系我们 | 广告业务 | 网站地图 | 法律声明

EasyJF开源团队版权所有  建议使用1024*768分辨率