什么是maven?

1.maven是什么?

   Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]

Maven 是是一个依赖管理工具和项目信息管理工具。以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上。现在,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。

**

2.为什么用maven?**

	   1.mvven可以管理jar文件
	   2. 自动下载jar和他的文档,源代码
	   3. 管理jar直接的依赖,a.jar需要b.jar,maven会直接下载b.jar
	   4. 管理你需要的jar版本
	   5. 帮你编译程序,把java编译为class
	   6. 帮你测试你的代码是否正确
	   7. 帮你打包文件,形成jar文件或者war文件
	   8. 帮你部署项目

3.目录结构

java项目

simple 
---pom.xml    核心配置,项目根下
---src	
	---main      
		 	---java    java源码目录
	 		---resources   java配置文件目录
	 ---test
	        ---java    测试源码目
	        ---resources   测试配置目录
        		

javaweb项目

	pom.xml                 核心配置
	src/main/java                java源码
	src/main/resources            java配置
	src/main/webapp            myeclipse web项目中 WebRoot目录
			|-- WEB-INF
			|-- web.xml
	src/test                    测试
	target                    输出目录

4.生命周期

1 清理  把之前项目的编译的东西删除掉,为新编译的代码做准备
2 编译  把程序源代码编译为执行代码,java--class文件
批量的,maven可以同时把成千上万的文件编译为class
3 测试 maven可以执行测试程序代码,验证功能是否正确
4 报告 生成测试结果的文件,测试通过没有
5 打包 把你的项目中所有的class文件,配置文件等所有资源放在一个压缩文件中
这个压缩文件就是i项目的结果文件,java项目,压缩文件按是.jar,web应用是.war
6.安装 把5中生成的文件jar,war安装到本机仓库
7 部署 把程序安装好可以执行

5.坐标

Maven用坐标来唯一标识一个项目、依赖,坐标由三部分组成:
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
</dependency>	

groupId 公司、组织的名称
artifactId 项目名称
version 项目版本号。SNAPSHOT,快照,开发中的版本,不稳定;Release,发布版本。

6.依赖传递

依赖的作用域:
依赖有3个作用时期:编译时、测试时、正式部署运行时。
有的依赖3个时期都要使用,有的依赖只在特定时期使用,可使用设置依赖的作用域:

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
</dependency>
 

常用的值:
compile 默认值,编译、测试、正式运行,一般都使用默认值
test 只在测试时有效,比如junit
runtime 只在运行时有效(测试+正式运行)
provided 只在编译、测试时有效

7.仓库

在这里插入图片描述通过pom.xml中的配置,就能够获取到想要的jar包,但是这些jar是在哪里呢?就是我们从哪里获取到的这些jar包?答案就是仓库。

仓库分为:本地仓库、第三方仓库(私服)、中央仓库

  • 本地仓库

Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository
一般我们会修改本地仓库位置,自己创建一个文件夹,在从网上下载一个拥有相对完整的所有jar包的结合,都丢到本地仓库中,然后每次写项目,直接从本地仓库里拿就行了

修改本地库位置:在$MAVEN_HOME/conf/setting.xml文件中修改,
D:\UserData\repo:就是我们自己创建的本地仓库,将网上下载的所有jar包,都丢到该目录下,我们就可以直接通过maven的pom.xml文件直接拿。

  • 第三方仓库(私服)

开发者自己搭建的仓库,可以放自己的私有jar包,而不让别人使用,公司内通常做一个自己的远程仓库来加快jar包的下载速度,类似的阿里云仓库就是国内的加速仓库。

  • 中央仓库

Maven内置了远程公用仓库:http://repo1.maven.org/maven2
 这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主工程依赖的jar包如果本地仓库没有,默认从中央仓库下载

中央仓库很多都在国外,下载速度慢。国内的一些公司在自己的服务器上搭建了maven仓库(中央仓库的镜像),供内部人员使用,因为在公司私有的服务器上,所以又叫做私服。
有的公司把自己的maven分享出来,免费供开发者使用,比如阿里云的maven仓库。

如果使用了私服,需要jar包时,先到本地仓库中去找,找不到再去私服上找,如果私服上没有,就从中央仓库下载到私服,再从私服下载到本地仓库。

8.常用命令

打包:mvn package
编译:mvn compile
清空:mvn clean(清除编译后目录,默认是target目录)
运行测试:mvn test-compile
安装jar包到本地仓库中:mvn install
跳过测试:mvn xxx -DskipTests

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值