一、是什么?
Maven项目对象模型(POM),是可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
二、常用命令
mvn archetype:create创建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:清除以前的包后重新打包,跳过测试类
三、为什么使用?
目前项目中存在的问题:
1.jar包混乱:工程中存在jar包重复,版本不一致的情况.
2.添加jar包随意:需要用到第三方jar时,随便下载就添加到项目中了,没有记录
3.重复构建:每个开发人员从svn下载完代码后,都要对项目进行配置,构建.
4.不同环境的构建差异:总是存在在开发环境运行良好的程序,到了测试环境编译不通过,或者不同环境的配置文件不一致,需要手动的去修改
5.模块间的开发依赖纯手动处理:提倡模块化的开发,可是怎么做好模块化开发之间的依赖处理,没有解决方案.
通常,一个JavaEE项目所依赖的jar包会有很多。然而,这还并非是主要问题,在管理这些jar包过程中,jar包的版本往往是最令人头疼的问题。选择一个jar包的版本,需要考虑它所依赖的jar包是否支持这个版本,并且还需要确认依赖它的jar包能不能对这个版本兼容。所以,在过去的构建项目过程中,整理出这么一堆能让项目正常运行的jar包之后,这个lib目录就会变为禁区。jar包版本更新了,我们也很少会自找麻烦去触碰它。至于是不是存在冗余的jar包?能正常运行就好了嘛。。。。
Maven的出现,解决了开发过程中的这一难题。它可以对项目依赖的jar包进行管理,可以让你的项目保持基本的依赖,排除冗余jar包,并且可以让你非常轻松的对依赖的jar包进行版本升级。而这些仅仅是Maven最基本的功能,它可以在这基础上对项目进行清理、编译、测试、打包、发布等等构建项目的工作。
推荐阅读:
http://www.cnblogs.com/j2eeDevelper/archive/2016/02/25/5216781.html