Maven介绍以及Maven安装与环境变量配置

Preface

    Maven 是一个项目管理和整合工具。Maven为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。

 在有多个开发团队环境的情况下,Maven能够在很短的时间内使得每项工作都按照标准进行。因为大部分的工程配置操作都非常简单并且可复用,在创建报告、检查、构建和测试自动配置时,Maven可以让开发者的工作变得更简单。

 Maven 的主要目的是为开发者提供

  1. 一个可复用、可维护、更易理解的工程综合模型
  2. 与这个模型交互的插件或者工具
 Maven 工程结构和内容被定义在一个 xml 文件中 - pom.xml,是 Project Object Model (POM)的简称,此文件是整个 Maven系统的基础组件。

 Maven 使用约定而不是配置,意味着开发者不需要再自己创建构建过程。

 开发者不需要再关心每一个配置细节。Maven 为工程提供了合理的默认行为。当创建 Maven 工程时,Maven 会创建默认的工程结构。开发者只需要合理的放置文件,而在pom.xml中不再需要定义任何配置。

 举例说明,下面的表格展示了工程源码文件、资源文件的默认配置,和其他一些配置。假定 ${basedir}表示工程目录:

 

配置项默认值

source code

${basedir}/src/main/java

resources

${basedir}/src/main/resources

Tests

${basedir}/src/test

Complied byte code

${basedir}/target

distributable JAR

${basedir}/target/classes

1.Maven-环境配置

 Maven的运行依赖jdk,首先需要安装好jdk。

1.1. Maven下载

 从以下网址下载 Mavenhttp://maven.apache.org/download.html

1.2. 解压Maven

 将下载好的Maven解压到相应目录,解压后的目录结构如下图

1.3. 设置Maven环境变量

 添加 M2_HOMEM2MAVEN_OPTS到环境变量中。

 M2_HOME= D:\Program Files\apache-maven-3.3.9

 M2=%M2_HOME%\bin

 MAVEN_OPTS=-Xms256m -Xmx512m

 添加字符串;%M2%” 到系统“Path”变量末尾

1.4. 验证Maven安装

 打开控制台,输入 mvn --version,出现下图即安装成功。
 

2. Maven使用

 每一个Maven项目都有一个pom.xml的配置文件.通过pom.xml可以配置项目的依赖,项目的打包方式等.

2.1. pom举例

       

   每个工程应该只有一个 POM文件。

  1. 所有的 POM 文件需要project元素和三个必须的字段:groupId, artifactId,version
  2. 在仓库中的工程标识为 groupId:artifactId:version
  3.  POM.xml 的根元素是project,它有三个主要的子节点

    
groupId

这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,一个银行组织 com.company.bank拥有所有的和银行相关的项目。

artifactId

这是工程的标识。它通常是工程的名称。例如,消费者银行。groupId artifactId 一起定义了artifact在仓库中的位置。

version

这是工程的版本号。在 artifact 的仓库中,它用来区分不同的版本。例如:

com.company.bank:consumer-banking:1.0

2.2. 项目类型

  Maven项目的类型根据配置文件中的Packaging决定.

  打包方式常见的有三种:

  1. jar:java项目<packaging>jar</packaging>
  2. war:web项目<packaging>war</packaging>
  3. pom:parent项目<packaging>pom</packaging>

2.3. Maven的标准目录结构


 在构建maven项目时需要遵循标准的目录结构.

 一般情况下:所有的源码都放在java目录下,所有的资源文件或者配置文件放置在resources目录下.

2.4. Maven的生命周期

Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:

  • validate,验证工程是否正确,所有需要的资源是否可用。
  • compile,编译项目的源代码。
  • test-compile,编译项目测试代码。
  • test,使用已编译的测试代码,测试已编译的源代码。

  • package,已发布的格式,如jar,将已编译的源代码打包。

  • integration-test,在集成测试可以运行的环境中处理和发布包。

  • verify,运行任何检查,验证包是否有效且达到质量标准。
  • install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
  • deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
  • generate-sources,产生应用需要的任何额外的源代码,如xdoclet

如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test

2.5. 添加依赖

    可以从 https://mvnrepository.com/ 搜索你需要的依赖进行添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值