在学校学习的时候,你是否会觉得配置环境很繁琐,不知道去哪里下载,又或者下载各种版本的依赖很麻烦。Maven就解决了这个问题。
目录
Maven的安装配置
首先得检查JDK的版本
下载Maven
配置Maven环境变量
检查Maven是否安装成功
Maven的特性
一、依赖管理系统
<dependencies>
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- log4j日志-->
<dependency>
<groupId>#</groupId>
<artifactId>log4</artifactId>
<version>log4j-2.17.0</version>
<type>pom</type>
</dependency>
</dependencies>
<!--父工程-->
<groupId>org.example</groupId>
<artifactId>Hziee</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>mybatis_01</module>
</modules>
三、 一致的项目结构
四、一致的构建模型和插件机制
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.25</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<contextPath>/test</contextPath>
</configuration>
</plugin>
修改Maven默认下载地址
因为默认是从国外网站下载,所以下载速度很慢,修改成国内阿里云镜像就可以快很多。
Maven项目的创建
Maven仓库的基本概念
<!-- 设置到指定目录中,路径的斜杆不要写反 -->
<settings>
<localRepository>D:/m2/repository</localRepository>
</settings>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
依赖的基本配置
根元素project下的dependencies可以包含多个 dependency元素,以声明多个依赖。每个依赖都应
该包含以下元素:
1. groupId, artifactId, version : 依赖的基本坐标, 对于任何一个依赖来说,基本坐标是最重要的,
Maven根据坐标才能找到需要的依赖。
2. Type: 依赖的类型,大部分情况下不需要声明。 默认值为jar
3. Scope: 依赖范围(compile,test,provided,runtime,system)
compile: 编译依赖范围。
如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测
试、运行三种classpath都有效。
test: 测试依赖范围。
使用此依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使
用时将无法使用此类依赖。典型的例子就是JUnit,它只有在编译测试代码及运行测试的时候
才需要。
provided: 已提供依赖范围。
使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时无效。典型的例
子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提
供,就不需要Maven重复地引入一遍(如:servlet-api)。
runtime: 运行时依赖范围。
使用此依赖范围的Maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。典
型的例子是JDBC驱动实现,项目主代码的编译只需要JDK提供的JDBC接口,只有在执行测试
或者运行项目的时候才需要实现上述接口的具体JDBC驱动。
system: 系统依赖范围。
该依赖与三种classpath的关系,和provided依赖范围完全一致。但是,使用system范围依赖
时必须通过systemPath元素显式地指定依赖文件的路径。由于此类依赖不是通过Maven仓库
解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该谨慎使用。
4. Optional:标记依赖是否可选
5. Exclusions: 用来排除传递性依赖。