Mavens使用教程

一、maven的简介

1.1 maven的作用

maven是一个项目依赖管理以及生命周期管理的工具软件

项目依赖的管理(也就是通常的jar包的管理)

一般我们在项目中使用jar包,首先要去下载所需要的jar包,然后复制在WEB-INF/lib下,然后添加到项目当中,步骤多繁琐没有可利用性,但是通过maven只需要导入相对应的依赖就可以使用jar包,简化步骤。

项目的生命周的管理

maven可以很好的管理我们整个项目的生命周期,包括清理缓存,校验,编译,测试,打包,安装,部署

聚合工程

在学完框架以后,可以使用maven很好的去整合我们的开发框架

二、maven安装以及环境变量的配置

2.1maven的下载

下载地址:maven.apache.org/download,cgi

2.2maven的安装

解压压缩包即可使用

2.3maven的目录结构

  • bin:存放maven提供的指令文件
  • boot:包含了一个类加载框架的文件
  • conf:包含了一个核心配置文件setting.xml文件(很重要)
  • lib:maven运行的必要jar包

2.4maven的环境配置

即java环境变量一样,不多说

三、maven的项目结构

使用maven的的好处可以适用于每个开发工具,它们的项目是一样的

3.1maven的项目结构

在这里插入图片描述


src目录为项目的根目录,指正错误应该是pom.xml文件

在这里插入图片描述


main目录下面有两个子目录,其中java目录存放Java代码,resources存放配置文件和静态资源,相当于传统项目的web目录

3.2 pom.xml文件的介绍

pom文件的英文全称为(Project Object Model)Maven可以根据pom文件的配置对此项目进行依赖管理;也就是说项目中需要依赖,直接在pom.xml进行配置即可

<?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">
    <!--指定项目模型版本-->
	<modelVersion>4.0.0</modelVersion>
    <!--指定项目的标识:G 企业标识 A 项目标识 V 版本-->
    <groupId>com.xinhua</groupId>
    <artifactId>fmwy</artifactId>
    <version>1.0.0</version>
    
    <!--配置当前项目的依赖-->
    <dependencies>
    	
    </dependencies>
</project>

如果需要在当前项目中添加依赖,只需在pom.xml文件中进行依赖配置即可

四、依赖管理

4.1 Maven依赖管理的流程

在这里插入图片描述

4.2 Maven仓库介绍

  • 本地仓库:就是本地计算机上的某个文件夹(可以是自定义的任何文件夹)
  • 远程仓库:就是远程主机上的jar文件仓库
  • 中央仓库: maven官方提供的仓库,包含了所需的一切依赖(免配置)
  • 公共仓库: 除了中央仓库以外的第三方仓库都是公共仓库,例如aliyun(需要配置)
  • 私服:企业搭建的供内部使用的maven仓库

4.3 Maven仓库配置

在maven_home/conf/settings.xml中进行配置,找到对应的仓库标签

配置本地仓库<localRepository>d:\repo</localRepository>

配置公共仓库 <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors>

五、项目生命周期管理

5.2 生命周期管理指令

在项目的根目录下执行mvn指令(此目录下必须包含pom.xml)

  • 清除缓存
mvn clean
  • 检查
mvn check
  • 编译
mvn compile
  • 测试
mvn test
  • 打包
mvn package
  • 安装
mvn install
  • 部署
mvn deploye

六、基于编译器的的Maven使用

6.1 在IDEA中关联Maven

在这里插入图片描述


在这里插入图片描述


说明: IDEA本身集成了Maven,考虑到IDEA和Maven版本的兼容性,Idea不建议配置比默认版本更新的版本,建议使用idea自带的maven。

6.2 使用IDEA创建Maven项目

6.2.1 Java项目

创建Java项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.2.2 web项目

  • 创建maven项目:maven-demo2

  • 在pom.xml文件设置打包方式为war

 <?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">
      <modelVersion>4.0.0</modelVersion>
  
      <groupId>com.xinhua</groupId>
      <artifactId>maven-demo2</artifactId>
      <version>1.0.0</version>
  
      <!--设置项目打包方式为war-->
      <packaging>war</packaging>
  
  </project>
  • 完成web项目结构

    在这里插入图片描述

  • 配置web组件—Tomcat
  • 在这里插入图片描述


    在这里插入图片描述


    在这里插入图片描述

  • 部署web项目

    在这里插入图片描述


    在这里插入图片描述

6.3 在IDEA中使用Maven进行依赖管理

6.3.1 查找依赖坐标
  • https://mvnrepository.com/
6.3.2 添加依赖
  • 将依赖的坐标配置到项目的pom.xml文件dependencies标签中
<?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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.qfedu</groupId>
    <artifactId>maven-demo2</artifactId>
    <version>1.0.0</version>

    <!--设置项目打包方式为war-->
    <packaging>war</packaging>

    <dependencies>
        <!--在此位置配置项目中所需依赖的坐标 GAV-->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.18</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>
6.3.3 依赖范围

在通过dependency添加依赖时,可以通过scope标签配置当前依赖的适用范围

  • test 只在项目测试阶段引入当前依赖(编译、测试)
<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
  </dependency>
  • runtime 只在运行时使用(运行、测试运行)
  • provided 在(编译、测试、运行)
  • compile 在(编译、测试、运行、打包)都引入

6.4 在IDEA中使用Maven进行项目构建

6.4.1 Maven项目构建生命周期说明
  • clean 清理缓存 清理项目生成的缓存
  • validate 校验 验证项目需要是正确的(项目信息、依赖)
  • compile 编译 编译项目专供的源代码
  • test 测试 运行项目中的单元测试
  • package 打包 将项目编译后的代码打包成发布格式
  • verify 检查 对集成测试的结果进行检查、确保项目的质量是达标的
  • install 安装 将包安装到maven的本地仓库,以便在本地的其他项目中可以引用此项目(聚合工程)
  • deploy 部署 将包安装到私服的仓库,以供其他开发人员共享
6.4.2 IDEA进行生命周期管理
  • 可视化

    在这里插入图片描述

  • 终端指令

    选择项目名称—右键—Open in Terminal

    mvn clean

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340