Maven

102 阅读1分钟

一、Maven

问题1:在很多项目中,包含了很多模块,模块之间有关系,手动管理这些模块,需要花费大量的时间和精力。
问题2:很多第三方功能需要jar包,这些jar包需要在网上下载
问题3:你的项目a.jar需要使用b.jar里的某一个class,必须要先获取b.jar,这就要手动管理jar包之间的依赖

综上所述,maven应运而生。maven可以:
管理jar文件,自动下载jar文件。
管理jar的版本,管理jar包之间的依赖。
帮你测试代码。
帮你打包文件为jar包或war包
帮你部署项目

二、maven的安装和配置

1、从maven的官网下载安装压缩包[网址:](https://maven.apache.org/)
2、解压到一个【非中文】的目录下
3、配置环境变量:在系统的环境变量中,声明一个M2_HOME的路径,指定的值是maven安装的主目录(不用到bin):E:\Operating_environment_tools\apache-maven-3.8.4
4、在命令行里输入 mvn-v 输出maven版本号即为配置成功

三、maven约定的目录结构

Helllo/
    ---/src
        ---/main           放主程序和java代码
            ---/java       放程序包和包中的java文件
            ---/resource   java文件中要使用的配置文件
            
        ---/test           测试的文件(可有可无)
            ---/java       放测试包和包中的java文件
            ---/resource
    ---/pom.xml            maven的核心文件

![A{}YVZ[SUTVW{G%$G3DOLH.png

四、pom.xml文件分析:

坐标:唯一值,就像在互联网中的身份证号,是唯一的标识
<groupID>公司域名倒写</groupID>
<artifactID>项目名</artifactID>
<version>版本号</version>

搜索jar包的中央仓库网址

五、在idea中设置maven(必会)

配置maven在idea中

配置idea.png

六、创建一个maven项目

使用模板创建项目:maven-archetype-quickstart:普通的java项目
                 maven-archetype-web:普通的web项目
                 

七、依赖范围

使用scope表示,scope的值有:compile,test,provided。默认是compile(编译:指从头到尾都要参与程序)
provided:提供者;只参与执行、测试,不参与部署、打包
scope表示依赖的范围,也就是maven构建的项目在哪个阶段(编译、测试、打包、安装、部署)起作用。
````
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>
````  说明junit 在test(测试)中起作用



八、其他的一些使用技巧

 当项目中使用多个版本号,可以使用自定义全局变量,省去了修改版本号时逐个修改的麻烦
 ${变量名}
 例如:首先在properties自定义版本号(spring为例)
 <spring.version>5.2.1</spring.version>  
 然后找到对应的依赖,使用${标签名}的形式

QQ浏览器截图20220121205644.png 以后再修改版本号,只需要修改properties中的自定义版本号即可