Maven是Apache旗下的一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。一般应用在企业级Java项目开发。最近在做的ITOO高校项目的开发中开发环境:Eclipse+Maven管理项目。
1. Maven是什么
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
Maven提供了开发人员的方式来管理:
-
Builds
-
Documentation
-
Reporting
-
Dependencies
-
SCMs
-
Releases
-
Distribution
-
mailing list
概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。
2. Maven在开发中给我们带来的好处
说到好处,必须先说清楚我们开发的前提,一般是企业级Java项目的开发,也就是说项目一般都比较大,需要多个团队进行合作。在这种情况下就要求团队之间可以同时开发,每一个团队之间的最后能够做到不互相制约,也就是能够最大限度的做到团队之间的解耦和。这样子我们的开发效率才能够增加。在这种企业级项目开发的过程中Maven就能够发挥它的作用了。
Maven在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
在项目开发中使用Maven之后的切身体会,不用再为jar包的引用和管理而头痛了。除此之外的项目构建部署等重复性的工作被大大简化了。开发人员只需要关注与一个pom文件就可以了。开发人员有足够的时间和精力去专注于我们的项目功能开发了。
Maven的提出体现了一种项目管理理念:在项目的开发过程中,每个模块独立的开发之后,其他需要使用此模块的项目只要通过操作pom文件就可以使用(在开发的过程中,大多数的模块都是重复的,比如权限模块,分页对象,BaseEao等等--这些都是固定的)。在开发项目的过程中,不在引入jar包,自动引入发布好。一系列的操作比如编译,打包,发布都自动帮我们弄好,不用手动操作。
3. Maven骨架
上面说了一大堆的理论知识之后来认识一下Maven的实际操作。在使用Maven之后我们开发中创建的项目就是Maven Project。这个Project有一个基本骨架。
src中就是java文件的存放位置,test文件夹中存放测试代码,main文件夹中存放开发的代码
创建的maven都有一个固定的骨架:src文件夹+pom.xml文件
在src中有两个文件夹
main文件夹--java文件夹 resourse文件夹......
test文件夹--java文件夹 resourse文件夹......
在eclipse中创建maven项目就会出现这样子的骨架
创建这样子的骨架是有maven命令的--可以具体去查是Maven的一些创建命令
4. Maven流程
1. 在程序中添加pom.xml文件
pom文件中必须添加gav(groupId--项目名,artifactId--项目中某一个模块的名字,version--模块的版本)
2. 在src的main中创建自己需要建立的类
3. 执行maven的命令--如何操作创建的一系列类文件
Maven complier--编译----将java文件编译成class文件--将编译好的文件放到target文件夹中
Maven test--测试文件
Maven clean---清空target
Maven package---打包
Maven install---安装
安装完成之后这个文件就是一个可以被别的模块引用的jar文件,通过在pom文件中写此模块的gav就可以引用此模块。开发人员关注最多的就是pom文件。
5. Maven相关资料推荐
Maven教程:http://www.yiibai.com/maven/
Apache Maven :
http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html
http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html