maven 的作用:
:一: 管理jar:
1: 增加第三方jar包 (将需要的jar的坐标配置在pom文件里,maven将会自动下载)
2: jar包之间的依赖关系 (普通项目,如果依赖A.jar,然后A.jar又依赖于B.jar。此时就需要将A.jar 和 B.jar都下载下来配置,使用maven项目只需要将 A.jar 配置到pom,然后maven会自动下载
关联依赖jar包 )
二: 将项目拆成若干个模块
1: 项目一般分成 展现层(view)、控制到层(controller)、业务层(service)、持久层(dao层),如果项目后期开发越来越多的话,每一层都会很繁杂,这个时候就可以考虑maven
将项目拆分成多个模块,每一块由一个团队单独维护;
maven的概念:
maven是一个基于java平台开发的自动化构建工具(因此,maven是需要jdk环境的);
(多嘴介绍一句,自动化构建工具的发展: make --》ant --》maven(主流的自动化构建工具)—》gradle(最新的自动化构建工具,学习资料少,学习难度较大);其实eclipse也是一个构建工具,但
是它是半自动化的,eclipse的构建过程: 编写java代码—》编译成class文件(该过程由eclipse执行)—》执行,在这一个过程中,开发人员只需要编写java代码,然后经由eclipse编译构建,然后执
行。而maven可以负责:
清理: 清空上次编译的结果
编译: java文件 —》 class 文件
测试: 针对项目的关键点进行单元测试
报告: 测试成功或失败的记录
打包: 将项目中的包含的多个文件压缩成一个文件,用于安装或部署
安装: 将打成的包放到 本地仓库(默认是安装到本地仓库里,其实也可以通过插件直接安装到服务器中)
部署 :将打成的包放到 服务器上 准备运行
也许你会说,eclipse不也是干的这个事吗。的确,但是从一个在eclipse上建立的项目,到其能在tomcat中运行,必须通过 先编译—> 再打包—> 再部署—> 再测试,其过程相对复杂。 而maven可以将这些繁杂的操作合成一个命令完成)
maven的仓库概念:
一个图领略maven仓库
再次多嘴介绍一下其中的概念:
1: 本地仓库: maven在安装完成之后,会将C:\Users\用户名\.m2\repository默认为本地仓库;由于仓库在使用的过程中会越来越大,所以一般不推荐放在C盘;更改maven仓库的方法:
打开maven的安装目录,找到conf文件夹下的settings.xml (即%maven_home%\conf\settings.xml), 更改该文件下的<localRepository> 节点
2: 私服库: 私服库是一个特殊的远程仓库,它是架设在局域网内的仓库服务,供局域网内的maven用户使用。
优点:
1:降低带宽压力。 建立私服可以减少组织自己的开支,大量的对于外部远程仓库的重复请求会消耗很大的带宽。
2:可以将组织内部生成的私有构件部署到私服中。 组织内部生成的私有构件肯定无法从外部仓库获取,建立私服 后,便可以上传上去,供内部的maven项目使用。
3:提高稳定性。 maven项目依赖于远程仓库,因此,当internet不稳定的时候,maven构建也会变得不稳定。
3:*仓库: 全球统一使用 http://mvnrepository.com/ 作为*仓库;
4:*仓库镜像: maven仓库默认在国外,使用会比较慢。换为国内的镜像,速度会快很多。
maven的目录结构:
项目
--src
--main
-- java
-- resource
--test
--java
--resource
--pom.xml
Maven常见命令(ps:每一次在执行某个命令的时候,maven会去下载maven命令的基础jar包以及项目环境所依赖的jar包):
mvn compile:编译 , 只编译main目录下的java文件;
mvn test : 编译并执行测试代码
mvn pacage : 打包, java项目打成jar包, web项目打成war包;打包完默认在target目录下
mvn install: 安装,将打包的项目安装到本地仓库(以后通过插件可以将打的包直接安装在服务器中)
mvn clean: 清理
注意: 所以的maven命令都必须在pom.xml文件所在的目录下执行
为了演示以上命令,我们新建一个简单的maven项目(为了演示效果,这里用dos窗口展示。当然目前的eclipse都支持maven组件)
先看看整个项目的基本结构,pom.xml
主代码 HelloWorld.java
测试代码 HelloWorldTest.java
编写完代码后,我们开始编译(这里只编译主代码)
编译并执行测试代码
测试通过以后,便可以打包,反之,则不然
这个时候可以在target,看到打成的jar包
将打包好的项目,进行安装,默认是安装在本地仓库里
安装完成以后,在本地仓库看到自己的jar,可供别的项目使用
mvn clean 清理之前编译好的target目录
以上是maven的仓库配置及基本命令的使用,在之后将后续写 maven在eclipse的使用以及maven在实际项目中的一些插件的使用;