Maven基础

Maven简介

  • Maven 是一个项目管理和构建工具,将项目开发和管理抽象成一个项目对象模型(POM)
  • 项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构 建、报告和文对象档。

传统项目需要寻找jar包并导入,不同人员之间jar包使用也不同,工程维护比较麻烦。因此maven提供了一种统一的项目开发结构,并提供了快捷的jar包管理

Maven模型

这是一个简单的maven项目结构(webapp是其那段所需,暂且可以不管),通过在pom.xml文件导入jar包,插件。

而pom.xml文件项目jar包导入也存在联系(依赖管理)

maven常用命令(代开文件按住shift+右击鼠标点击Powershell窗口可快速使用)

  • compile :编译
  • clean:清理
  • test:测试
  • package:打包
  • install:安装

我们使用上面命令需要在磁盘上进入到项目的 pom.xml 目录下

mvn compile

 

依赖管理

依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件)。如之前我们项目中需要使用JDBC和Druid的话,就需要 去网上下载对应的依赖包(当前之前是老师已经下载好提供给大家了),复制到项目中,还要将jar包加入工作环境这一系列 的操作。

maven坐标

什么是坐标?

Maven 中的坐标是资源的唯一标识 使用坐标来定义项目或引入项目中需要的依赖

Maven 坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
  • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
  • version:定义当前项目版本号

1.1依赖配置(导入依赖)也可以导入自己配制的依赖,只需要将属性进行名称添加

<!-- 设置当前项目所需依赖jar-->
<dependencies>
    <!— 设置具体依赖-->
    <dependency>
        <!— 依赖所属集群id-->
        <groupId>junit</groupId>
        <!— 依赖所属项目id-->
        <artifactId>junit</artifactId>
        <!--依赖版本号 -->
        <version>4.12</version>
    </dependency>
</dependencies>
⚫

 1.2依赖传递

  •         依赖具有传递性:
    • 直接依赖:当前项目通过依赖配置建立的依赖关系
    • 间接依赖:如果被依赖资源如果依赖别的资源,则当前项目间接依赖其他资源

 

依赖冲突之间,路径优先(层越浅,优先级越高),路径相同声明优先,位置在前先依赖

特殊优先,在pom.xml文件下配置两个相同类型不同版本,后配置覆盖前配置

1.3依赖管理

  • 可选依赖:是当前依赖不透明(不被他人查看)如
    <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.5.5</version>
          <!--optional默认为false,更改为true则不别别人查看-->
          <optional>true</optional>
    </dependency>
  •  排除依赖:可以排除依赖主动断开以来资源
    <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.1.0</version>
          <scope>provided</scope>
          <exclusions>
            <exclusion>
              <groupId></groupId>
              <artifactId></artifactId>
            </exclusion>
          </exclusions>
        </dependency>

1.4依赖范围<scope>(compile        test        provide        runtime)

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

 

 1.5生命周期与插件

  • 项目构建生命周期分为(每个周期又有许多周期)
    • clean:清理工作
    • default:核心工作如compile,install,package等
    • site:产生报告,发布站点等。这套声明周期一般不会使用。

 clean生命周期

  •  pre-clean 执行一些需要在clean之前完成的工作
  • clean 移除所有上一次构建生成的文件 
  • post-clean 执行一些需要在clean之后立刻完成的工作

同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下

当我们执行 install (安装)命令时,它会先执行 compile 命令,再执行 test 命令,再执行 package 命令,最后执行 install 命令。

当我们执行 package (打包)命令时,它会先执行 compile 命令,再执行 test 命令,最后执行 package 命令。 默认的生命周期也有对应的很多命令,其他的一般都不会使用,我们只关注常用的:

default每一次执行都会将前面的周期一同执行

 

 插件与生命周期进行关联,在执行到对应生命周期时执行对应插件功能

<build>
    <!--打插件-->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
                <execution>
                    <!--执行位置-->
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <phase>generate-test-resources</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值