第一章 Maven简介
1.1 软件开发中的阶段
需要分析: 分析项目具体完成的功能,有什么要求, 具体怎么实现。
设计阶段:根据分析的结果, 设计项目的使用什么技术, 解决难点。
开发阶段:编码实现功能。 编译代码。自我测试
测试阶段:专业的测试人员,测整个项目的功能十分符合设计要求。出一个测试报告。
项目的打包,发布阶段: 给用户安装项目
1.2 Maven能做什么
1)项目的自动构建,帮助开发人员做项目代码的编译,测试, 打包,安装,部署等工作。
2)管理依赖(管理项目中使用的各种jar包)。
依赖:项目中需要使用的其他资源, 常见的是jar 。 比如项目要使用mysql驱动。我们就说项目依赖mysql驱动。
1.3 没有使用maven怎么管理依赖
管理jar ,需要从网络中单独下载某个jar
需要选择正确版本
手工处理jar文件之间的依赖。 a.jar里面要使用b.jar的类。
1.4 什么是maven
maven是apache基金会的开源项目,使用java语法开发。 Maven 这个单词的本意是:专家,内行。读音是['meɪv(ə)n] 或 ['mevn]。
maven是项目的自动化构建工具。 管理项目的依赖。
Maven 是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven 是一款在大型项目开发过程中不可或缺的重要工具。
Maven 可以整合多个项目之间的引用关系,我们可以根据业务和分层需要任意拆分一个项目;
Maven 提供规范的管理各个常用 jar 包及其各个版本,并且可以自动下载和引入项目中;
Maven 可以根据指定版本自动解决 jar 包版本兼容问题;
Maven 可以把 jar 包所依赖的其它 jar 包自动下载并引入项目。
类似自动化构建工具还有:Ant, Maven, Gradle。
构建过程中的各个环节:清理、编译、测试、报告、打包、安装、部署。
构建(build),是面向过程的(从开始到结尾的多个步骤),涉及到多个环节的协同工作。
构建过程的几个主要环节
①清理:删除以前的编译结果,为重新编译做好准备。
②编译:将Java源程序编译为字节码文件。
③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
④报告:在每一次测试后以标准的格式记录和展示测试结果。
⑤打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应war包。
⑥安装:在Maven环境下特指将打包的结果——jar包或war包安装到本地仓库中。
⑦部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行
1.5 maven中的概念
①POM:一个文件 名称是pom.xml , pom翻译过来叫做项目对象模型。 maven把一个项目当做一个模型使用。控制maven构建项目的过程,管理jar依赖。
②约定的目录结构: maven项目的目录和文件的位置都是规定的。
③坐标:是一个唯一的字符串,用来表示资源的。
④依赖管理:管理你的项目可以使用jar文件。
⑤仓库管理:你的资源存放的位置。
⑥生命周期:maven工具构建项目的过程,就是生命周期。
⑦插件和目标:执行maven构建的时候用的工具是插件。
⑧继承
⑨聚合
1.6 maven工具的获取和安装
地址: http://maven.apache.org/ 从中下载 .zip文件。 使用的 apache-maven-3.3.9-bin.zip
安装:
-
确定JAVA_HOME 指定jdk的安装目录, 如果没有JAVA_HOME, 需要在windows的环境变量中创建JAVA_HOME, 它的值是jdk的安装目录
-
解压缩 apache-maven-3.3.9-bin.zip ,把解压后的文件放到一个目录中。
目录的路径不要有中文, 不要有空格。
-
把maven安装目录中下的bin的路径添加到path中
-
测试maven的安装。 在命令行执行 mvn -v
C:\Users\NING MEI>mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: D:\tools\apache-maven-3.3.9\bin\.. Java version: 1.8.0_101, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk1.8.0_101\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
maven的其他安装方式:
-
确定JAVA_HOME是否有效
-
在环境变量中,创建一个叫做M2_HOME (或者MAVEN_HOME) ,它的值是maven的安装目录
M2_HOME=D:\tools\apache-maven-3.3.9
-
在path环境变量中,加入 %M2_HOME%\bin
-
测试maven的安装,在命令行执行 mvn -v
C:\Users\NING MEI>mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: D:\tools\apache-maven-3.3.9\bin\.. Java version: 1.8.0_101, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk1.8.0_101\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
第二章Maven的核心概念
2.1 约定的目录结构
maven项目使用的大多人 遵循的目录结构。 叫做约定的目录结构。
一个maven项目是一个文件夹。 比如项目叫做Hello
Hello 项目文件夹
\src
\main 叫做主程序目录(完成项目功能的代码和配置文件)
\java 源代码(包和相关的类定义)
\resources 配置文件
\test 放置测试程序代码的(开发人员自己写的测试代码)
\java 测试代码的(junit)
\resources 测试程序需要的配置文件
\pom.xml maven的配置文件, 核心文件
maven的使用方式:
1)maven可以独立使用: 创建项目,编译代码,测试程序,打包,部署等等
2)maven和idea一起使用:通过idea借助maven,实现编码,测试,打包等等
2.2 POM
POM: Project Object Model 项目对象模型, maven把项目当做模型处理。 操作这个模型就是操作项目。
maven通过pom.xml文件实现 项目的构建和依赖的管理。
<?xml version="1.0" encoding="UTF-8"?>
<!-- project是根标签, 后面的是约束文件 -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- pom模型的版本, 就是4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- 坐标 -->
<groupId>com.bjpowernode</groupId>
<artifactId>ch01-maven</artifactId>
<version>1.0-SNAPSHOT</version>