开端
终止一切重复的工作!任何一款产品的出现若是增加了用户的负担、降低了用户效率,则此产品需要重新定位。我们考虑这样的问题:一个庞大的项目, 数百人开发,怎样划分才能更好的利于协作,此时需要借助某种工具将这个庞大项目进行拆解,并且拆分的越小越好,最好是每一个模块对应着一个工程。但是接着出现的问题就是这么多项目工程会出现大量重复的jar包,不仅浪费存储空间,而且让项目变得比较臃肿,把这些公共需要的jar存放到一个地方,从此处引用,既然如此这就需要保证此处的jar是统一的,保证jar的正确性、可用性,需要制定一种规范的方式来获取jar包,从而保证提供给工程可靠的jar包。
Maven解决诸多问题,其中Maven提出了仓库的概念,将jar包存入其中,并对外提供文件接口,而不必再将jar包拷贝进工程,仓库中按照一定的规则存放了所有知名框架或第三方工具的jar包,并且非常了解jar包之间的依赖关系,会将被依赖的相关jar包一并导入进去,减少了程序员学习的时间成本。
概念
What
Maven(妹文)是一款主要服务于基于Java平台的项目构建,依赖管理和项目信息管理(java开发)。在ITOO新考试系统开发过程中,借用Maven自动化构建,从而使得清理,编译,测试到生成报告,再到打包部署不再认为操作,而且流畅的运行在Windows、Linux、Mac系统之上。工具演变发展:Make -> Ant -> Maven -> Gradle
构建:其实也可以理解为生产,利用Java源文件、配置文件、JSP、HTML等原材料生产一个可运行的项目。Java源文件经过编译生成字节码文件.class,再交给JVM去执行。项目最终云翔的并不是动态Web工程本身,而是这个工程编译之后的结果。就像是我们要吃鸡,先得养大一只鸡,然后必须经过生产处理变成味道鲜美的熟鸡才能享用。
构建环节:
• 清理:将之前编译的到的字节码文件删除,为下一次编译做准备
• 编译:将java源程序编程class字节码文件
• 测试:自动测试,自动调用Junit程序
• 报告: 测试程序执行的结果
• 打包:动态Web工程打war包,Java工程打jar包
• 安装:Maven特定的概念-将打包得到的文件复制到仓库中的指定位置
• 部署:将动态Web工程生成的war包复制到Servlet容器的指定目录下,使其可以运行
• 编译:将java源程序编程class字节码文件
• 测试:自动测试,自动调用Junit程序
• 报告: 测试程序执行的结果
• 打包:动态Web工程打war包,Java工程打jar包
• 安装:Maven特定的概念-将打包得到的文件复制到仓库中的指定位置
• 部署:将动态Web工程生成的war包复制到Servlet容器的指定目录下,使其可以运行
HOW安装Maven的核心程序
①检查JAVA_HOME环境变量
C:\User\zjc > echo%Java_Home%
D:\Program Files\Java\jdk1.8.0_60%
②解压Maven核心程序的压缩包,放在一个非中文的无空格路径下
D:\Program Files\apache-maven=3.3.2
③配置Maven相关的环境变量
④验证:运行mvn -v 查看Maven版本
Maven的核心概念
- 约定的目录结构
- POM
- 坐标
- 依赖
- 仓库
- 生命周期、插件、目标
- 继承
- 聚合
1.1创建约定的目录结构
根目录:工程名
- src目录:源码
- Pom.xml:Maven工程的核心配置文件
- main目录:存放主程序
- Test目录:存放测试程序
- java目录:存放java源文件
- resources目录:存放框架或其他工具的配置文件
-
-
1.2为甚要遵守约定的目录结构
- Maven 负责我们这个项目的自动化构建,以编译为例,Maven要想自动进行编译,那么他必须知道java源文件保存在哪里。
- 如果我们自己自定义的东西要想让框架或工具知道,两种办法
- 已配置的方式明确告诉框架
-
- 遵守框架内部已经存在的约定
- 已配置的方式明确告诉框架
- 约定大于配置 : 约定>配置>编码
①执行与构建过程相关的Maven命令,必须进入pom.xml所在的目录。与构建相关:编译测试打包
常用的命令:
Mvn clean清理
Mvn complie编译主程序
Mvn test-complie编译测试程序
Mvn test执行测试
Mvn package打包
Mvn install安装
Mvn site 生成站点
②
关于联网的问题:
- Maven的核心程序中仅仅定义了抽象的声明周期,但是具体的工作必粗由特定的插件来完成。而插件本身并不包含在Maven的核心程序中。
- 当我们执行的Maven命令粗要是使用到某些插件的时,Maven核心程序会手下 到本地仓库中查找。
- 本地仓库的默认位置:【系统中当前用户的家目录】\.m2/repository
- Maven 在本地找不到需要的插件,那么会自动连外网,到中央仓库中下载
无法联网的话就构建失败
修改本地默认仓库的位置,可以让Maven核心程序到我们事先准备好的目录下进行查找需要的插件
步骤:
1.找到Maven解压目录\conf\setting.xml
2.在setting.xml 文件中找到localRepository标签
3.将<localRepository>/path/to/local/repo<localRepository>从注解中取出
4.将标签中内容修改为已经准备好的Maven 仓库目录