Maven是一个项目管理工具,对Java项目进行构建,依赖管理。
Maven优点:
- 一个命令完成构建,运行,方便快捷。
- 对每个构建项目进行规范,有利于大型团队协作开发完成项目。
主要功能: - 项目构建
- 依赖管理
在项目构建是一个从编写源代码->编译->测试->打包->部署->运行
依赖管理:项目所有依赖的jar包进行规范化管理。避免版本冲突。
通过pom.xml中的定义坐标从maven仓库自动下载,方便且不方便出错。
bin项目mvn.bat(run方式运行)。
conf目录中settings.xml是整个maven工具核心配置文件。
配置文件:新增配置文件: MAVEN_HOME 将文件地址放入其中。
path:%MAVEN_HOME%/bin
采用mvn -v检查是否安装成功,看到maven和java版本即为成功。
注意:使用win10配置Path的时候,切记最后不要保留分号“;”
Maven的作用为:从仓库中下载jar包。分为:本地仓库,远程仓库,中央仓库。
本地仓库:用来存储从远程仓库中或者中央仓库中下载的插件和jar包,项目中使用一些插件或者jar包,优先从本地仓库中下载。
远程仓库:本地没有插件或者jar包,默认从远程仓库中下载,远程仓库可以从互联网下载,局域网。
中央仓库,存储了非常多且全的jar包。
Maven工程结构 - mvn compile 完成编译操作,执行完毕后,会生成target目录,里面存放着编译后的字节码文件。
- mvn clean 执行完毕后会将target文件删除,删除的是maven生命周期里面全部的生成文件。
- mvn test 命令,完成单元测试,最好在文件命名的时候,避免使用test,执行完毕后,会在taeget目录中会生成两个文件夹 surefire-reports(测试报告),test-classes(测试的字节码文件,包括test/resources的资源文件)。
- mvn package 完成打包操作(在执行打包操作之前会执行mvn test 命令),执行完成后,target目录中生成一个文件,可能是jar(默认),war。
在artifcats中增加war-exployed
依赖的作用范围:
● compile:编译范围,指A在编译时依赖B,此范围为默认依赖范围。编译范围的依赖会用在编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。
● provided:provided依赖在编译和测试时需要,在运行时不需要,比如:servlet api被tomcat容器提供。provided依赖只有在当JDK或者一个容器已提供该依赖之后才能使用(否则会报错),
● runtime:runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc的驱动包。由于运行时需要所以runtime范围的依赖会被打包。
● test:test范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,比如:junit。由于运行时不需要所以test范围依赖不会被打包。
然后执行maven package命令报错,maven的web项目默认的是webroot是在src\main\webapp
mvn install : 执行mvn install 命令,将完成大好的jar包安装到本地仓库的操作,执行完毕后,以供其他项目使用。
cmd 中录入 mvn clean compile 组合指令,先执行clean,再执行compile,通常应用于上线前执行,清除测试类。
cmd 中录入 mvn clean test 组合指令,先执行clean,再执行test,通常应用于测试环节。