Maven整合IDEA步骤
1.maven的概念和作用
- maven的概念和作用:maven是一款项目管理工具,作用:1、能够帮助我们统一编译、测试、打包、安装、部署、调优项目,2、能够帮助我们统一管理jar包(依赖管理)。还可以对项目进行调优。
2.maven的安装和相关配置
-
在系统环境变量中,点击新建、配置MAVEN_HOME
-
在系统环境变量中,找到path,点击编辑,如果是如下所示,再点击新建
或者:
-
测试是否配置成功,打开cmd命令行窗口,输入mvn -v
3.仓库的分类
3.1 仓库的分类
本地仓库:本地仓库就是自己电脑中的一个文件夹,这个文件夹中放了很多常用的jar包。maven优先从本地仓库获取jar包,如果有就直接返回;
远程仓库/私服:局域网内的一个仓库,局域网内所有用户都可以共享;maven优先从本地仓库获取jar包,如果没有就从私服中获取,如果私服中有jar,那么就下载到本地仓库,maven项目从本地仓库获取jar包。如果私服中没有jar包,那么就会从中央仓库下载jar包到私服,然后从私服下载jar包到本地仓库,,maven项目最后从本地仓库获取jar包
中央仓库:需要外网访问的一个仓库,有我们开发的所有jar包。maven优先从本地仓库获取jar包,如果没有,那么自动去中央仓库下载jar包到本地仓库,最后从本地仓库获取jar包。
中央仓库位置:https://mvnrepository.com
3.2 配置本地仓库以及阿里镜像(重点1)
- 配置本地仓库:打开apache-maven-3.5.2\conf\settings.xml配置文件
<localRepository>D:/maven_repository</localRepository>
- 配置阿里中央仓库镜像:在mirrors标签中配置如下内容(资料中的maven已配置,可以不用配)
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
4.常用命令
- 常用命令
mvn clean: 清除所有编译信息
mvn compile:编译java主代码
mvn test:编译并且测试测试类代码,同时也编译的java主代码
mvn package:将项目打成jar包或者war;在打包之前会对项目进行compile
mvn install:将项目打好的jar包或者war安装到本地仓库;在安装之前对项目进行compile和package
- 生命周期
5.idea中集成maven(重点2)
- 集成maven
- 配置运行环境:-DarchetypeCatalog=internal -Dfile.encoding=gbk
6.在idea中创建maven项目(重点3)
6.1 创建java项目-不使用骨架
- 第一步:
- 第二步:
- 第三步
- 第四步:需要在pom.xml添加<packaging>jar</packaging>,否则使用mvn package无法打包
2.2 创建web项目-不使用骨架
- 第一波:先使用创建java项目的步骤创建一个java项目,在pom.xml中配置<packaging>war</packaging>
- 第二波:在main下创建webapp,并将webapp标注为web目录
第三波:最终的目录结构如下:
7.依赖管理以及依赖范围(重点4)
7.1 使用坐标添加依赖
-
坐标:坐标指的是jar包在仓库中位置的唯一标识;
-
中央仓库位置:https://mvnrepository.com
-
坐标的做成部分:
-
依赖范围
- 在坐标中添加依赖范围
- 依赖范围的种类
compile: 主代码编译期、测试代码编译期、运行期都有效 默认;(war包中有对应的jar包)
provided:主代码编译期、测试代码编译期有效、运行期无效(war包中没有对应的jar包)
test:主代码编译期无效, 测试代码编译期有效、运行期无效
runtime:主代码编译期无效, 测试代码编译期有效、运行期有效
system: 基本不用,需要配置<systemPath>标签指定jar包的绝对路径,通过这个路径找到本地jar包
-
常用jar包的范围:javax.servlet-api和jsp-api的jar包范围是provided,junitjar包的范围是test,mysql驱动jar包范围可以设置成runtime,但是一般也是使用compile。其他jar包都是默认使用compile
8.常用的插件(重点5)
- jdk1.8插件
<!-- 配置jdk1.8插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
- tomcat7插件
<!--配置Tomcat7插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>80</port>
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>