1.技术结构图
2.为什么需要使用Maven
2.1目前开发中存在的问题
-
Jar包需要事先准备好,或者去官网下载
不同技术的jar包提供下载的方式是一不一样.目前主流下载模式就是使用maven下载.
如果你采用的是不规范的方式获取的jar包,那么获取的内容也可能是不规范的.
借助maven采用统一的下载方式,到maven中央仓库中下载规范的jar包. -
项目中需要的jar包必须手动放到WEB-INF/lib目录下
多个项目中可能会有重复的jar文件.导致存储空间的浪费,另外也会让项目比较臃肿.
借助maven,可以将jar包存储在本地仓库中,有需要的项目引用这个文件接口.并不需要真的把jar包复制过来. -
一个jar包可能依赖另一个jar,需要找到被依赖的jar包并导入项目
所有Jar包之间的依赖关系都需要程序员了解,那么就会增加学习成本.
借助maven会自动的将被依赖的包导入使用. -
一个项目目前通过的package来划分模块.
项目非常的庞大,就不适合使用package来划分模块,最好采用子项目来划分.
借助maven可以将一个项目拆分成多个子项目.
3.Maven是什么
maven定义: maven是一款java平台的自动化构建工具.
构建定义: 使用”java源代码”,”框架配置文件”,”页面文件”,”静态资源”等.为材料,去生产一个可以运行项目的过程.
编译–>部署–>搭建
-
编译:
Java源文件(Student.java)编译(javac)Class字节码文件(Student.class)交给JVM使用 -
部署:
一个B/S结构的项目,最终运行的并不是项目本身.而是它编译的结果.
注意:对应库文件的引用,并没有把jar包本身复制到项目中.所以并不是目录.
构建过程个主要环节:
- 清理: 将以前编译得到class字节码文件删除,为下一次编译做准备
- 编译: 将java源文件编译成class字节码文件
- 测试: 自动测试,自动调用junit程序
- 报告: 测试程序执行的结果
- 打包: Web项目打war包,Java项目打jar包
- 安装: Maven独有步骤,将打包得到的结果组织复制到本地仓库中的指定位置
- 部署: 将生成war包复制到容器(Tomcat)的指定目录下,让它可以运行.
4.安装maven的核心程序
- 下载maven核心程序
网址:http://maven.apache.org/download.cgi
-
检查JAVA_HOME环境变量
-
解压下载maven包到文件夹中(要求路径中不能有中文和空格).
-
配置Maven的环境变量
注意: 如果为了需要兼容以前的maven版本,环境变量名称改为M2_HOME.
-运行maven检查配置
命令:mvn -v
5.Maven中的概念
- 约定的目录结构
- pom文件
- 坐标
- 依赖
- 仓库
- 生命周期
- 继承和聚合
6.第一个maven项目
- 按照约定的目录结构创建maven项目
根目录: 项目目录
src: 源代码目录
pom.xml maven项目的核心配置文件
main: 主程序目录
test: 测试程序目录
java: 存放java源代码目录
resources: 存放资源文件目录
主程序代码:
测试程序代码:
- 约定配置
约定 > 配置 > 编码
Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。如下所示:
目录 | 目的 |
---|---|
${basedir} | 存放pom.xml和所有的子目录 |
${basedir}/src/main/java | 项目的java源代码 |
${basedir}/src/main/resources | 项目的资源,比如说property文件,springmvc.xml |
${basedir}/src/test/java | 项目的测试类,比如说Junit代码 |
${basedir}/src/test/resources | 测试用的资源 |
${basedir}/src/main/webapp/WEB-INF | web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面 |
${basedir}/target | 打包输出目录 |
${basedir}/target/classes | 编译输出目录 |
${basedir}/target/test-classes | 测试编译输出目录 |
Test.java | Maven只会自动运行符合该命名规则的测试类 |
~/.m2/repository | Maven默认的本地仓库目录位置 |
- 常用的maven命令
1. mvn clean 清理命令,删除target目录下所有的编译内容
2. mvn compile 编译主程序命令,将编译结果存放到target目录
3. mvn test-compile 编译测试程序命令, 将编译结果存放到target目录
4. mvn test 测试命令,执行测试程序并生成测试报告
5. mvn package 打包命令,将项目描述和主程序打包
6. mvn install 将打包的结果安装到本地仓库中.
7.Maven联网问题
-
Maven核心程序中只定义了生命周期,但是具体的工作是由特定的插件来完成.而核心程序本身并不包含这些插件
-
当我们执行maven命令是,核心程序就会在本地仓库中查找命令对应的插件.
-
本地仓库的默认位置在
C:\Users[登录用户名].m2\ repository
建议通过修改conf/settings.xml文件调整本地仓库所在的位置
-
如果在本地仓库中找不到插件,就会自动访问外网.到中央仓库中下载对应的插件并保存进本地仓库.进而使用插件完成maven命令.
-
如果不能访问网络,构建失败.
转载:https://blog.csdn.net/qq_45048713/article/details/105258205