maven细节较多,就不一一把笔记的内容照搬一遍,也没新意。就随便勾勒下重点回顾下吧
什么是maven?maven翻译过来是专家的意思,它是一个项目管理构建工具,
用它来帮助我们对java项目的管理。就像我们之前,自己导各种jar包,那时候就是我们自己来管理整个项目,
面临的很多问题,例如占用内存,版本冲突等问题。因此,引入了Maven,
Maven主要有两个功能(一定要记住的)
1.项目构建
2.依赖管理
最终生成的大部分文件在target目录内
上图中部分阶段对应命令如下:
清理阶段对应maven的命令是clean,清理输出的class文件
编译阶段对应maven的命令是compile,将java代码编译成class文件。
打包阶段对应maven的命令是package,java工程可以打成jar包,web包可以打成war包
什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。
举个例子:C3P0的jar包。
什么是依赖管理?就是对项目所有依赖的jar包进行规范化管理。
maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行,如下图:
使用maven依赖管理添加jar的好处:
1、通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。
2、maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便。
从该网站 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包
略过
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报红时,有两个解决方法,一是看有没有拼写错误,可以去本地仓库查看。二是看本地仓库是否加载完全。
