Warning: Use of undefined constant maven - assumed 'maven' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant project - assumed 'project' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant project - assumed 'project' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant user - assumed 'user' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant maven - assumed 'maven' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant project - assumed 'project' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant project - assumed 'project' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant user - assumed 'user' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1

Warning: Use of undefined constant home - assumed 'home' (this will throw an Error in a future version of PHP) in /www/wwwroot/newbaike1.com/id.php(48) : eval()'d code on line 1
Maven(项目管理工具软件) - 知青百科zhiqingwang.shzq.org
Maven
项目管理工具软件
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。由于Maven的缺省构建规则有较高的可重用性,所以常常用两三行Maven构建脚本就可以构建简单的项目。由于Maven的面向项目的方法,许多apache Jakarta项目发文时使用Maven,而且公司项目采用Maven的比例在持续增长。
Maven这个单词来自于依地语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。
特点
那么,Maven和Ant有什么不同呢?在回答这个问题以前,首先要强调一点:Maven和Ant针对构建问题的两个不同方面。Ant为Java技术开发项目提供跨平台构建任务。Maven本身描述项目的高级方面,它从Ant借用了绝大多数构建任务。因此,由于Maven和Ant代表两个差异很大的工具,所以接下来只说明这两个工具的等同组件之间的区别,如表1所示。
Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency 管理学 System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven有一个生命周期,当你运行mvn install的时候被调用。这条命令告诉Maven执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven运行了许多默认的插件目标,这些目标完成了像编译和创建一个JAR文件这样的工作。
此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。
常用命令
mvn archetype:generate创建Maven项目
mvn compile编译源代码
mvn deploy发布项目
mvn test-compile编译测试源代码
mvn test运行应用程序中的单元测试
mvn site生成项目相关信息的网站
mvn Clean清除项目目录中的生成结果
mvn package根据项目生成的jar
mvn install在本地Repository中安装jar
mvn eclipse:eclipse生成eclipse项目文件
mvnjetty:run启动jetty服务
mvntomcat:run启动tomcat服务
mvn clean package-Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类
推荐书籍
发文时中文版对maven介绍比较全的书籍是《Maven实战》
Win7配置
首先要安装Jdk1.6和Myeclipse7.5。
1.Maven有一个重要的文件"settings.XML“,这个文件来源于apache-maven-2.0.8/conf/下,要放在window下,Win7和Windows XP还是有点不一样,Win7---C:\Users\用户名\.m2,Winxp---C:\Documents and Settings\用户名\.m2。
2.设置Maven的环境变量,基本上和设置JDK环境变量相似,首先设置MAVEN_HOME,再加入Path。
3.修改”settings.XML”文件,在这个文件中找到\u003clocalRepository\u003ed:/work\u003c/localRepository\u003e这一行,进行修改。这一行代表了Maven的Jar包仓库的位置。work下放的都是项目所用到的jar包,每个Project都可以共用一个work。
4.Myeclipse7.5及以上版本本身自带Maven插件。如果使用低版本的MyEclipse需要安装插件,在help菜单中选择软件 updates,选择find and install,选择search for new features to install-选择new remote site。写入name:maven URL:http://m2eclipse.codehaus.org/update/去下载相关jar包和插件。
5.在Myeclipse中windows-perferences中,在下图的位置上,查看users settings的路径是否正确。
6.建立Maven的project,File--new—other—Java Maven Project。
7.然后打开project里pom.XML文件,
在这xml文件中添加Maven所依赖的Jar的名称,也就是添加\u003cdependency\u003e\u003c/dependency\u003e节点。
例如:添加大家常用的Struts Jar包
8.到发文时为止,环境就算搞定了。接下来要应用Maven来打包Project为大家服务的。
运行指令中的命令:
a.mvn eclipse:Clean清除Project中以前的编译的东西,重新再来
b.mvn eclipse:eclipse开始编译Maven的Project
MyEclipse中的操作:
a.选中Maven Project右击在Run As中选择Maven clean
b.在Myeclipse中,Project—Clean开始编译
c.选中Maven Project 右击在Run As中选择Maven install
执行完这几步,如果没发生异常,会在project里生成一个target文件夹,这个文件夹里的东西,就是Maven打包发布的东西。
生命周期
Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。
Clean(清理)
cleanup(清理所有)
此生命周期旨在给工程做清理工作,它主要包含以下阶段:
pre-clean-执行项目清理前所需要的工作。
clean-清理上一次build项目生成的文件。
post-clean-执行完成项目清理所需的工作.
default(默认)
validate-验证项目是否正确且所有必要的信息都可用。
initialize-初始化构建工作,如:设置参数,创建目录等。
generate-sources-为包含在编译范围内的代码生成源代码.
process-sources-处理源代码,如过滤值.
generate-resources-
process-resources-复制并处理资源文件,至目标目录,准备打包。
compile-编译项目中的源代码.
process-classes-为编译生成的文件做后期工作,例如做Java类的字节码增强.
generate-test-sources-为编译内容生成测试源代码.
process-test-sources-处理测试源代码。
generate-test-resources-
process-test-resources-复制并处理资源文件,至目标测试目录。
test-compile-将需测试源代码编译到路径。一般来说,是编译/src/test/java目录下的java文件至目标输出的测试CLASSPATH目录中。
process-test-classes-
test-使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package-
package-接受编译好的代码,打包成可发布的格式,如JAR。
pre-integration-test-
integration-test-按需求将发布包部署到运行环境。
post-integration-test-
verify-
install-将包安装到本地仓库,给其他本地引用提供依赖。
deploy-完成集成和发布工作,将最终包复制到远程仓库以便分享给其他开发人员。
site(站点)
pre-site-执行一些生成项目站点前的准备工作。
site-生成项目站点的文档。
post-site-执行需完成站点生成的工作,如站点部署的准备工作。
site-deploy-向制定的web服务器部署站点生成文件。
Maven生命周期参考:Apache Maven Project,书籍《Maven In Action》
参考资料
Maven生命周期详解.juvenshun.2013-01-11
目录
概述
特点
常用命令
推荐书籍
Win7配置
生命周期
参考资料