欢迎光临
我们一直在努力

用Maven做项目管理ZT

maven 做项目管理 Java世界中我们很多的开发人员选择用 Ant来构建项目,一个 build.xml能够完成编译、测试、打包、部署等很多任务,但我们也碰到了很多的问题,如 jar文件管理混乱,各个项目结构和 build.xml相差很大等等。而 Maven的出现,给项目提供了更多的支持。

1        简介 Maven 作为 Apache 的一个开源项目,旨在给项目管理提供更多的支持,主页地址为 http://maven.apache.org 。它最早的意图只是为了给 apache 组织的几个项目提供统一的开发、测试、打包和部署,能让开发者在多个项目中方便的切换。很多伟大的事业,出发点都很简单, ebay 就是很好的例证。而 maven 的成功又一次验证了这一点,越来越多的项目开始使用 maven
基本原理
Maven 的基本原理很简单,采用远程仓库和本地仓库以及一个类似 build.xml pom.xml ,将 pom.xml 中定义的 jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的 jar ,同一个版本的 jar 只需下载一次,而且避免每个应用都去拷贝 jar 。如图 1 。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以 maven 下载很小( 1.1M ),在执行 maven 任务时,才会自动下载需要的插件。
这个基本原理与 Pear ――PHP扩展与应用库( the PHP Extension and Application Repository )的原理非常相似,都有一个官方的仓库,都是微内核,通过网络将需要的文件下载到本地,通过官方仓库将相应的类库进行统一管理。 Pear 已经成为 PHP 开发事实上的标准,而 Maven Java 世界的地位也逐渐加强,成为标准指日可待。
另外由于插件的易开发性,现在有了非常多的可供选择的插件,如与 eclipse 结合的插件,与 test 相关的插件,后面我们结合 maven 在项目中的使用进行详细介绍。

2        项目管理 Maven 官方把 maven 定义为一个项目管理工具,我们不妨看看 maven 能给我们的项目提供哪些好的支持。
2.1       项目标准化 Maven 一个重要特性是定义了项目的标准模板,官方说法是最佳实践。可以通过命令: mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app 创建一个单一的 maven 项目。创建好的项目,具有了特定的项目结构。这个项目结构是参考业界的最佳实践而成,为后面使用统一的 maven 命令打下了基础,如测试 mvn test 、打包 mvn package 等,无需写一行脚本,就可以方便的实现众多功能。 Maven 还提供其它一些类型模板,可以通过添加 -DarchetypeArtifactId= type }创建,如 -DarchetypeArtifactId=maven-archetype-site ,生成 site 类型的项目。
同时一些好的开源软件使用了 maven ,也能作为很好的项目模板,如 Equinox Appfuse 的简化版),它的 pom 定义了对 hiberante,spring… 的依赖,可以通过 ant new -Dapp.name=NAME 快速生成项目原型,然后对 pom 文件进行裁减,以符合自身项目的需要。
有了这个标准,项目间能方便的进行交流,你也很容易了解其它使用 maven 项目的结构。对于企业来说,引入 maven 就自然引入了规范,这可比费时费力的写文档,定规范有效的多了。
2.2       文档和报告 使用 mvn site 可以快速生成项目站点, apache 很多开源项目站点都采用 maven 生成,会出现 built by maven 字样的图标。
maven 提供的针对如 junit checkstyle pmd 等的插件,能够方便的进行测试和检查并能直接生成报告。使用都很简单,如 mvn surefire-report:report 就能自动进行 junit 测试,并生成 junit 报告, mvn pmd:pmd 生成 pmd 报告。具体使用可以在 http://maven.apache.org/plugins/index.html 找到。
2.3       类库管理 Maven 一个很重要的特色就是类库管理。通过在 pom.xml 中定义 jar 包版本和依赖,能够方便的管理 jar 文件。以下是一个简单的 jar 定义片断:

jar

groupId

org.hibernate

artifactId

hibernate

3.1

scope

runtime

M2_REPO

)/ org/hibernate / hibernate /3.1/ hibernate -3.1.jar

classpath

maven

pom.xml

jar

hibernate-3.1.jar

hibernate -3.1.pom

pom

jar

jar

pom

maven

jar

hibernate

jar

pom

jar

web

jar

WEB-INF/lib

cvs(svn)

maven

pom.xml

mvn eclipse:eclipse

maven

mvn package

mvn test

testcase

war

packaging

war

target

war

ant

maven

ant

mvn install

distributionManager

repository

mvn deploy

  

         

Maven

maven

maven

Maven

maven

SCM

CVS

SVN

pom.xml

repository

remote repository

repository

maven

Springside

http server

apache

maven

htdocs

ip

192.168.0.1

maven2

pom.xml

jar

mvn eclipse:eclipse

jar

repository

${user.home}/.m2/

windows xp

C:\Documents and Settings\

username%\.m2

username

${user.home}/.m2/

repository

jar

groupId/ artifactId/version

repository

apache

maven

jar

jar

jar

maven

pom.xml

repository

jar

repository

repository

Maven

1.         

apache

maven

maven

maven

4.         

mvn –version

5.         

eclipse

mvn eclipse:eclipse

eclipse

M2_REPO

Classpath Variables

repository

C:/Documents and Settings/Owner/.m2/repository

pom.xml

cmd

maven

Maven

mvn eclipse:eclipse

jar

mvn eclipse:eclipse

jar

mvn test

mvn package

target

mail:pesome@gmail.com

  

Maven

maven

maven

  

pesome

JavaEE

spring

www.openfans.net

  

1.       http://maven.apache.org

2.      

Maven2

Posted by kevinwu on December 15, 2006 09:22 PM |

相关文档_

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《用Maven做项目管理ZT》
文章链接:https://www.456zj.com/38373.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址