what is Maven?
Maven英文的意思是内行,专家的意思。
在计算机中Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档软件项目管理工具。Maven将我们的注意力从作业层转移到管理层。Maven项目自己知道如果构建和捆绑,运行测试,生成文档。
Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段中插件(plugin)目标的逻辑。
以前你用sping、hibernate等依赖包的时候需要自己手动导入,现在在maven项目的配置文件中写上你需要的jar包的名字和jar包的版本等信息,maven就会自动去网站下载你想要的jar包。
Maven特点?
Maven约定,遵守Maven约定,Maven就自动的去找源代码。
Maven声明式,最重要的Maven项目文件是pom.xml和一个settting.xml,通过他你去告诉Maven去做什么,怎么做。
Maven生命周期,例如当运行Maven install命令时,Maven会自动的执行各种插件,并且他自己按照顺序执行,我们不需要知道更多的细节。
Maven基于插件,几乎所有的操作都是在插件上完成的,第一次执行命令会自动从中央服务器上下载命令执行插件来完成操作。
Maven的一些知识如下图所示。
Maven初步
1、Maven插件安装。
对于eclipse,需要安装Maven插件,也就是从官网上下载Maven的jar包,解压后,把bin目录配置到环境变量上,这样我们就不需要每次都敲很长的路径来运行Maven了。
对于Myeclipse,自带的Maven插件,不需要我们安装了。
2、本地仓库的安装。
那些下载下来的jar包,maven会放到一个仓库中,这样第一次下载之后,第二次再用就会从本地仓库中查找是否存在,如果存在就不会再去网站上下载。本地仓库在c盘用户文档 .m文件夹中,我们可以通过配置maven目录下的conf文件夹中的setting.xml来去修改默认的本地仓库的位置。
3、新建Maven项目。
无论是eclipse还是Myeclipse,选择新建,就会看到Maven project。同时项目的目录结构是我们必须要遵守的。
4、创建java代码和测试代码。
约定了:
源代码应该放到src/main/java中。
源代码资源文件放到src/main/resources文件夹中。
测试代码放到src/test/java中。
编译后会自动生成文件夹,.java编译成.class文件位置,target/classes。
打包后的jar包war ear等:/target。
5、Maven运行,常用命令如下所示。
mvn compile:编译源代码。
mvn test-compile:编译测试源代码。
mvn test:运行单元测试。
mvn site:生成项目相关信息的网站。
mvn clean:清楚项目目录中生成的结果。
mvn package:打包,根据项目生成jar。
mvn install:在本地Respository中安装jar。
mvn clean install:运行清理和安装,会将打包好的包安装到本地仓库中,以便一起的项目调用。
mvn clean develop:运行清理和安装,发布到私有服务器上。
6、Maven生成方式。
如果我们在dos命令下使用Maven,通过命令mvn archetype generate,可以自动生成Maven项目的骨架。
Maven依赖
依赖包查询
一些网站上有可以查询依赖包,通过查询再配置到pom.xml中。
依赖传递性
依赖的范围
聚合问题和继承问题
版本管理
Maven仓库
本地仓库
远程仓库
私有仓库
Maven生命周期和插件
三套生命周期
1、clean
2、compile
3、site
小结
大概的,算是抛砖引玉吧,多应用几遍自会通的。熟悉的陌生人,陌生的熟悉人,Dear Maven,晚安。