使用Maven
-
下载安装
- 下载地址:https://maven.apache.org/download.cgi
- 解压即安装,解压时解压到一个没有【中文】和【空格】的目录中。
-
目录介绍
- bin:执行脚本文件
- boot:运行maven的类加载器
- conf:配置文件settings.xml是整个maven的核心配置文件
- lib:运行maven所需要的以来jar包
-
配置环境变量
-
需要电脑上安装jdk1.7以上的版本,需要配置JAVA_HOME环境变量
-
配置MAVEN_HOME
- 先配置MAVEN_HOME的根目录:D:\developer\maven\apache-maven-3.6.3
- 再配置path总路径:在path总路径的最后面添加:%MAVEN_HOME%/bin
-
验证maven环境变量是否配置成功
mvn -v
-
maven仓库
maven仓库 存放项目中用到的所有jar包,仓库分为三种:本地仓库、远程仓库、中央仓库
-
本地仓库:一般在开发者自己电脑上,有一个目录存放jar包资源
-
远程仓库(私服):有的公司会在公司内部搭建一个属于公司内部的仓库。
-
中央仓库:maven团队进行管理、维护着世界上所有用到的jar包资源,目前全球上大概有两亿多个。
-
访问仓库的顺序:本地仓库–>远程仓库–>中央仓库
配置本地仓库
- 找到conf下面的settings.xml文件,编辑该文件
<!--配置本地仓库位置-->
<localRepository>D:/developer/maven/m2/repository</localRepository>
- 配置maven jdk1.8 默认是1.5
- <!--配置maven jdk1.8-->
<profile>
<id>jdk18</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
- 配置国内阿里镜像地址
<!--配置阿里云镜像地址-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
maven工程的目录结构
maven的目录结构具有一定的目录规范,使用maven工具来构建项目,必须遵从maven目录规范
- src/main/java:存放项目的java文件
- src/main/resources:存放项目的资源文件,如db.properties,后面用到框架Spring applicationContext.xml、如mybatis框架,SqlMapConfig.xml
- src/main/webapp:web工程的web资源
- src/main/webapp/WEB-INF:存放webx.xml文件
- src/test/java:存放单元测试的.java文件,如Junit测试类
- src/test/resources:存放测试用到的资源文件,如果没有会从main中查找
- target:项目的输出位置,编译之后生成的.class文件,打成 的.jar文件和war包文件
- pom:maven的核心配置文件
Maven依赖管理
通过maven的依赖管理对项目中的jar包同一管理,通过<dependencies>引入单个<dependency>
<dependencies>标签表示当前项目所有依赖的jar包,其内部是<dependency>
<dependency>标签表示具体的依赖器内部有四个标签
<groupId>表示组织名+项目名
<artifactId>表示模块或者项目名称
<version>表示版本号
<scope>表示依赖的范围
例子:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
依赖范围 | 对于编译是否有效 | 对于测试是否有效 | 对于运行时是否有效 | 例子 |
---|---|---|---|---|
complie | √ | √ | √ | spring-core |
test | - | √ | - | Junit |
provided | √ | √ | - | Servlet-api |
runtime | - | √ | √ | JDBC驱动 |
system | √ | √ | - | 本地仓库 |
- complie 表示编译时依赖,默认值,会在编译、测试、运行都可以依赖
- test 测试的时候依赖,编译和运行不依赖
- provided 只在编译和测试时依赖,运行时不依赖
- runtime 运行和测试时依赖,编译的时候不依赖
- system 依赖范围和provided一样。