Maven基础知识的理解

Maven介绍

1.我们为什么要使用Maven?

我们在项目的开发中会遇到一些问题,比如

  1. 都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行了?
  2. 为什么在我的机器上可以正常打包,而配置管理员却打包不出来?
  3. 项目组加入了新的人员,我要给他说明编译环境设置,但是让我挠头的是,有些细节我也记得不是很清楚了!
  4. 我的项目依赖一些jar包,我应该把他们放在哪里?放源码库里?

正是因为这些问题,我们就需要使用Maven来帮助我们解决!

2.那什么是Maven?

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建(管理)依赖管理(jar项目信息管理

Maven主要有两个功能:

  1. 项目构建(创建,打包(jar(java项目),war(web项目)),部署)
  2. 依赖管理(做好配置,自定下载依赖)

3.Maven的工程结构

Project

  |-src

  |   |-main

  |   |  |-java        —— 存放项目的.java文件

  |   |  |-resources   —— 存放项目资源文件,如spring, hibernate配置文件

  |   |  |-webapp     ———存放jsp,html,web.xml等网页文件   WebContent/WebRoot

  |   |-test   测试代码

  |   |  |-java        ——存放所有测试.java文件,如JUnit测试类

  |   |  |-resources   —— 测试资源文件

  |-target             —— 目标文件输出位置例如.jar、.war文件,该文件夹是自动创建的

  |-pom.xml           ——maven项目核心配置文件,依赖管理,插件管理

3.Maven的核心

  • 坐标

在平面几何中坐标(x,y)可以标识平面中唯一的一点。在maven中坐标就是为了定位一个唯一确定的jar包。Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范拥有了统一规范,就可以把查找工作交给机器

<!--依赖管理-->
<dependency>
         <!--junit-->
		    <groupId>junit</groupId>
		    <artifactId>junit</artifactId>
		    <version>4.12</version>
		    <scope>test</scope>
</dependency>
  • 坐标主要组成 

groupId:定义当前Maven组织名称,与包的命名方式类似,如:com.itqf

artifactId:定义实际项目名称

version:定义当前项目的当前版本                               唯一的表示一个项目

  • 依赖范围

其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:

  1. compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
  2. test:测试依赖范围。只对于测试classpath有效
  3. provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
  4. runtime:运行时提供。例如:jdbc驱动      <scope>runtime</scope>
  • 生命周期

Maven生命周期就是为了对所有的构建过程进行抽象和统一包括项目清理、初始化、编译、打包、测试、部署等几乎所有构建步骤。生命周期可以理解为构建工程的步骤。在Maven中有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

  1. Clean Lifecycle: 在进行真正的构建之前进行一些清理工作。
  2. Default Lifecycle: 构建的核心部分,编译,测试,打包,部署等等。
  3. Site Lifecycle: 生成项目报告,站点,发布站点。  ProjectManager

再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。

  • Maven三大生命周期

同上面的三套生命周期,1.clean:清理项目  2.default:构建项目   3.site:生成项目站点

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值