【Javaweb】Maven项目管理工具

修改时间:2021年2月5日
作者:pp_x
邮箱:[email protected]

Maven介绍

  • Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。

Maven的作用

  • 依赖管理
    • 依赖指的就是是 我们项目中需要使用的第三方Jar包,,一个大一点的工程往往需要几十上百个Jar包,按照我们之前的方式,每使用一种Jar,就需要导入到工程中,还要解决各种Jar冲突的问题.
    • Maven可以对Jar包进行统一的管理,包括快速引入Jar包,以及对使用的 Jar包进行统一的版本控制
  • 一键构建项目
    • 之前我们创建项目,需要确定项目的目录结构,比如src 存放Java源码,resources存放配置文件,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻烦
    • Maven为我们提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目.

Maven环境变量

  • 类似Jdk环境变量配置

Maven仓库

  • Maven中的仓库是用来存放maven构建的项目和各种依赖的(Jar包)

Maven的仓库分类

  • 本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包
  • 远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。
  • 中央仓库: 在 maven 软件中内置一个远程仓库地址http://repo1.maven.org/maven2,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件在这里插入图片描述

配置仓库

本地仓库配置

  • maven仓库默认是在C盘 账户目录 .m2 目录下,我们不要将仓库放在C盘,所以这里要重新配置一下
  • 打开maven安装目录,进入conf文件下,找到setting.xml文件
  • 找到如下位置进行本地仓库配置
    在这里插入图片描述

远程仓库配置

  • 以阿里云仓库为例
  • 还是打开setting.xml文件,找到标签<mirrors></mirrors>,将如下内容放入标签中
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>
        http://maven.aliyun.com/nexus/content/groups/public/
    </url>
    <mirrorOf>central</mirrorOf>        
</mirror>

idea和maven关联

打开IDEA 选择File --> Settings --> 搜素maven,就会看到如下界面
在这里插入图片描述

Maven的生命周期和常用命令

Maven的生命周期

  • 使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些 过程规范为一个生命周期,如下所示是生命周期的各个阶段
    在这里插入图片描述

Maven常用命令

  • mvn compile:完成编译操作 , 执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。
  • mvn clean:执行完毕后,删除生成的target目录
  • mvn test:执行完毕后,会在target目录中生成surefiresurefire-reports(测试报告)、test-classes(测试的字节码文件)
  • mvn package:完成打包操作, 执行完毕后,会在target目录中生成一个文件,该文件可能是 jar、war
  • mvn install:执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作 ,执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

idea中Maven的工具栏

在这里插入图片描述

1.根据pom.xml文件重新导入所有Maven项目和依赖,刷新
2.创建源码(重新编译)并更新目录
3.下载源码或文档
4.添加Maven项目
5.执行生命周期中的阶段,选中lifecycle选项中生命周期中的一个阶段(phase),才能点击执行。
6.运行Maven生命周期或插件
7.切换离线模式,就是关闭和远程仓库的链接,从本地仓库中获取,也不能将jar包提交到远程仓库
8.是否跳过测试,点击选中就可以跳过测试,在点击选择取消跳过测试
9.展示当前选中的maven项目jar包的依赖,并且可以直接在图形化依赖图上进行排除依赖操作
10.收起下面展开的视图
11.跳转到maven的Setting页面

依赖范围介绍

依赖范围 说明
compile 编译范围,指 A在编译时依赖 B,此范围为默认依赖范围。编译范围的依赖会用在 编译、测试、运行由于运行时需要所以编译范围的依赖会被打包
provided provided 依赖只有在当 JDK 或者一个容器已提供该依赖之后才使用, provided 依赖在编译和测试时需要,在运行时不需要,比如:servlet api 被 tomcat 容器提供。
runtime runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc 的驱动包。由于运行时需要所以 runtime 范围的依赖会被打包。
test test 范围依赖在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用, 比如:junit。由于运行时不需要所以test范围依赖不会被打包。
system system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中 JAR 文件的路径,需要指定 systemPath 磁盘路径,system依赖不推荐使用
  <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1.2</version>
            <scope>provided</scope>
        </dependency>

猜你喜欢

转载自blog.csdn.net/weixin_46303867/article/details/113697857
今日推荐