Maven

Maven详解

maven是一个项目的构建工具

一、maven作用:

1.管理依赖:jar包的下载,版本、管理

2.构建项目:完成项目代码的清理、编译,测试,打包,部署

二、maven的使用方式

1.独立使用maven:

​ 使用maven的各种命令,完成代码的编译,测试,打包等。

2.结合开发工具使用

​ 简单、快捷、不需要记命令

三、maven的安装

1.下载安装包:Maven官网

2.解压缩文件到一个非中文目录

3.配置环境变量,M2_HOME为 maven的安装目录

4.在path中加入%M2_HOME%bin

5.测试maven的安装,使用mvn -v查看maven的版本信息

四、maven的核心概念

1.约定的目录结构

项目文件夹下的src存放了main(主程序代码和配置文件)test(测试代码)
main文件下包含了java主程序和resource资源、配置
test文件下包含了java测试程序

五、如何修改Maven本地仓库

首先找到刚刚下载好的maven,依次根据以下路径找到Maven\apache-maven-3.8.1-bin\apache-maven-3.8.1\conf下面的settings.xml

然后在如图位置处加上
D:/developer_tools/Maven/apache-maven-3.8.1-bin/Workspace/repository
在这里插入图片描述

其中 中间所填写的便是你自己的本地仓库的位置。

1>Maven仓库是干什么的?

​ 用来存放maven使用的jar包和项目使用的jar包。

2>仓库分类

​ >本地仓库 就是你个人计算机上的文件夹,存放各种jar

​ >远程仓库 在互联网上的,使用互联网下载才能使用的仓库

​ ①中央仓库:最权威的,所有开放人员都共享使用的一个集中的仓库(https://repo.maven.apache.org)

​ ②中央仓库的镜像,就是中央仓库的备份。

​ ③私服,在公司内部,在局域网中使用的,不是对外使用的。

3>仓库的使用

​ maven仓库的使用不需要认为参与

​ 开发人员如果需要使用某个驱动,首先查看本地仓库,如果本次仓库中没有此驱动,就会去私服仓库中查找,然后依次是中央仓库的镜像,最后是中央仓库中查找,而整个过程由maven自动操作

4>pom.xml文件

1)坐标,唯一值,在互联网中唯一标识一个项目的

<artifactId>自定义的项目名称</artifactId>
<groupId>公司域名的倒写</groupId>
<version>自定义版本号</version>

groupId 组织id,一般是公司域名的倒写+项目名。

artifactId 项目名称,也是模块名称,对应groupId中的项目中的子项目

version 项目的版本号,如果项目还在开发中,是不稳定的版本,通常在版本后带—SNAPSHOT,通过有三位数字标识,例如1.1.0

2)build:maven在进行项目的构建是,配置信息,例如指定编译java代码使用的jdk的版本信息

六、Maven的生命周期、命令、插件

maven的生命周期:就是maven构建项目的过程,清理,编译、测试、报告、打包、安装、部署

maven的命令:maven独立使用,通过命令完成maven的生命周期的执行,maven可以使用命令完成项目的清理、编译、测试等

maven的插件:maven命令执行时,真正完成功能的是插件,插件就是一些jar文件

七、依赖的范围

使用scope表示,scope的值有compile、test、provided。 默认是compile,在编译、测试、打包、部署阶段都有效

scope:表示依赖使用的范围,也就是在maven构建项目(清理,编译,测试,打包,安装,部署)的哪些阶段中起作用

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

此处的junit只在测试阶段才生效

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

此处的servlet依赖的范围时provided,在测试、编译阶段有效,当参与打包、部署时不需要,相应的服务器会提供相应的jar包

maven默认没有使用resources的时候,maven执行编译代码时,会把src/main/resources目录中的文件拷贝到target/classes目录中,对于src/main/java目录下的非java文件不处理,不拷贝到target/classes目录中

但是现在程序有需要把一些配置文件文件放在src/main/java目录中,在执行java程序时,要用到src/main/java目录中的文件,此时需要告诉maven在mvn compile src/main/java目录下的程序时,需要把src/main/java下的文件一同拷贝到target/classes目录中

此时就需要在中加入.

  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>
  </build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值