maven细节较多,就不一一把笔记的内容照搬一遍,也没新意。就随便勾勒下重点回顾下吧
1.简介
什么是maven?maven翻译过来是专家的意思,它是一个项目管理构建工具,
用它来帮助我们对java项目的管理。就像我们之前,自己导各种jar包,那时候就是我们自己来管理整个项目,
面临的很多问题,例如占用内存,版本冲突等问题。因此,引入了Maven,
Maven主要有两个功能(一定要记住的)
1.项目构建
2.依赖管理
2.Maven项目的构建过程
最终生成的大部分文件在target目录内
上图中部分阶段对应命令如下:
清理阶段对应maven的命令是clean,清理输出的class文件
编译阶段对应maven的命令是compile,将java代码编译成class文件。
打包阶段对应maven的命令是package,java工程可以打成jar包,web包可以打成war包
2.1 什么是依赖管理?
什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。
举个例子:C3P0的jar包。
什么是依赖管理?就是对项目所有依赖的jar包进行规范化管理。
2.2 maven项目的依赖管理
maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行,如下图:
使用maven依赖管理添加jar的好处:
1、通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。
2、maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便。
三、安装下载
3.1 下载
从该网站 http://maven.apache.org/download.cgi 下载
l 解压
将maven解压到一个不含有中文和空格的目录中。
l 目录简介
bin目录 mvn.bat (以run方式运行项目)、 mvnDebug.bat(以debug方式运行项目 )
boot目录 maven运行需要类加载器
conf目录 settings.xml 整个maven工具核心配置文件
lib目录 maven运行依赖jar包
3.2 环境变量配置
略过
四、依赖的作用范围
compile:编译范围,指A在编译时依赖B,此范围为默认依赖范围。编译范围的依赖会用在编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。
provided:provided依赖在编译和测试时需要,在运行时不需要,比如:servlet api被tomcat容器提供。provided依赖只有在当JDK或者一个容器已提供该依赖之后才能使用(否则会报错),
runtime:runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc的驱动包。由于运行时需要所以runtime范围的依赖会被打包。
test:test范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,比如:junit。由于运行时不需要所以test范围依赖不会被打包。
五、注意的几个问题
1.当你打开另一个项目,做的第一件事情是修改maven配置。在moudleseting设置
2.一定要在网络良好的情况下使用,如果网络不好,会下载不完全.lastUpdatated
3.解决jdk1.5的问题
在maven安装下的conf目录下的setting.xml文件夹内增加如下代码
<profile>
<id>jdk-1.8</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>
或者配置pom文件里的properties标签
<properties>
<!--key是我们的自定义标签-->
<!--spring.version=5.1.0.RELEASE-->
<spring.version>5.1.0.RELEASE</spring.version>
<mysql.version>5.1.14</mysql.version>
<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>
4.当右边maven报红时,有两个解决方法,一是看有没有拼写错误,可以去本地仓库查看。二是看本地仓库是否加载完全。