Maven的使用

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。它包含了一个项目对象模型(ProjectObjectModel),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(DependencyManagementSystem),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后通过maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven 除了程序构建能力为特色之外,还提供高级项目管理工具。由于Maven的缺省构建规则有较高的可用性,所有常常用两三行Maven 构架脚本就可以构建简单的项目。

1.下载Maven

maven的下载:http://maven.apache.org/download.cgi
下载Maven
选择当前最新的版本"apache-maven-3.8.1-bin.zip",下载到本地。

2.安装Maven

Maven版本不同需要的环境版本也不同,3.8.1版本的Maven需要JDK1.7及以上的版本。apache-maven-3.8.1-bin.zip 直接解压即可。

3.设置Maven的环境变量

  1. 找到系统的环境设置,在系统变量中,添加新的系统变量,如下图:
    添加新的系统变量
    变量值要写自己解压过后的路径,路径不要出现中文。
  2. 接下来编辑Path变量,加入%MAVEN_HOME%\bin,如下图:
    编辑Path变量
  3. 在命令行中输入命令 mvn -v 检查是否配置成功,如下图:
    检查是否配置成功

4.认识Maven仓库和POM文件

Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库和中央仓库。当项目编译时,Maven首先从本地仓库中寻找项目所需的jar包,若本地仓库没有,再到Maven的中央仓库下载所需的jar包。
本地仓库:Maven本地的jar包分库。
中央仓库:Maven官方提供的远程仓库。
pom.xml 文件是maven项目的配置文件,可选项的配置有很多,常用配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!-- 模型版本。maven2.0必须这样写,现在是maven2唯一支持的版本 -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 公司或者组织的唯一标识,并且配置时生成的路径也是由此而生,如com.gxy.ssm,maven会将该项目打成的jar包放本地路径:/com/gxy/ssm -->
    <groupId>com.gxy.ssm</groupId>
    <!-- 本项目的唯一ID,一个groupId下面可能有多个项目,就是靠artifactId区分 -->
    <artifactId>ssm</artifactId>
    <!-- 本项目目前所处的版本号 -->
    <version>1.0-SNAPSHOT</version>
    <!-- 打包的机制,如pom,jar,maven-plugin,war,ear,rar,par,默认为jar -->
    <packaging>war</packaging>
    <!-- 定义本项目的依赖关系 -->
    <dependencies>
        <!-- 每个dependency对应一个jar包 -->
        <dependency>
            <!-- 一般情况下,maven是通过groupId、artifactId、version这三个元素值(俗称坐标)来检索该构建,然后引入你的工程。
            如果别人想引入你现在开发的这个项目(前提是已开发完毕并发布到了远程仓库),
             就需要在他的pom文件中新建一个dependency节点,将本项目的groupId、artifactId、version写入,
              maven就会把你上传的jar包下载到他的本地 -->
            <groupId>com.gxy.ssm</groupId>
            <artifactId>ssm</artifactId>
            <version>1.0-SNAPSHOT</version>
            <!-- maven认为,程序对外部的依赖会随着程序的所处阶段和应用场景而变化,所有maven中的依赖关系有作用域(scope)的限制。 -->
            <!-- scope包含如下的取值:compile(编译范围)、provided(以提供范围)、runtime(运行时范围)、test(测试范围)、system(系统范围) -->
            <scope>test</scope>
            <!-- 设置依赖是否可选,默认false,即子项目默认都继承:为true,则子项目必须显式的引入,与dependencyManagement里定义的依赖相似 -->
            <optional>false</optional>
            <!-- 屏蔽依赖关系。比如项目中使用的libA依赖某个库的1.0版本,libB依赖某个库的2.0版本,现在想统一使用2.0版本,就可以屏蔽掉对1.0版本的依赖 -->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</project>

5.Maven坐标

在Maven中,坐标是jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的jar包。

<dependency>
  <groupId>cglib</groupId>
  <artifactId>cglib-nodep</artifactId>
  <version>3.2.10</version>
  <scope>test</scope>
</dependency>

如上所示,groupIdartifactId构成了一个jar包的坐标。
groupId:所需jar包的项目名
artifactId:所需jar包的模块名
version:所需jar包的版本号
scope:依赖范围,默认范围是compile

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值