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 POM

POM: Project Object Model 项目对象模型, maven把项目当做模型处理。 操作这个模型就是操作项目。
maven通过pom.xml文件实现 项目的构建和依赖的管理。image.png

3 坐标

坐标组成是 groupid, artifiactId, version。 坐标概念来自数学。·
坐标作用:确定资源的,是资源的唯一标识。 在maven中,每个资源都是坐标。 坐标值是唯一的。简称叫gavimage.png
项目使用gav:
1.每个maven项目,都需要有一个自己的gav
2.管理依赖,需要使用其他的jar ,也需要使用gav作为标识。
搜索坐标的地址: https://mvnrepository.com/

4 依赖 dependency

依赖:项目中要使用的其他资源(jar)。
需要使用maven表示依赖,管理依赖。 通过使用dependency和gav一起完成依赖的使用
需要在pom.xml文件中,使用dependencies 和dependency, 还有gav 完成依赖的说明image.png
maven使用gav作为标识,从互联网下载依赖的jar。 下载到你的本机上。 由maven管理项目使用的这些jar

解决依赖下载不了 项目代码报红的问题

首先把资料中提供的settings.xml文件复制到C:\Users\10583.m2目录下
然后删除掉C:\Users\10583.m2目录下的repository文件夹,并重新创建这个文件夹
然后重新打开报红的项目,右键pom.xml文件 选择maven, 选择重新加载当前项目]HMHA}HD]X)QT)X1ABD$GR2.png

5 仓库

仓库是存东西的,maven的仓库存放的是:

  1. maven工具自己的jar包。
  2. 第三方的其他jar, 比如项目中要使用mysql驱动。
  3. 自己写的程序,可以打包为jar 。 存放到仓库。

仓库的分类:

  1. 本地仓库(本机仓库): 位于你自己的计算机, 它是磁盘中的某个目录。本地仓库:默认路径,是你登录操作系统的账号的目录中/.m2/repository

C:\Users\NING MEI.m2\repository
2.远程仓库: 需要通过联网访问的
1)中央仓库: 一个ftp服务器, 存放了所有的资源。
2)中央仓库的镜像: 就是中央仓库的拷贝。 在各大主要城市都有镜像。
3)私服:在局域网中使用的。 私服就是自己的仓库服务器。 在公司内部使用的。
maven使用仓库: maven自动使用仓库, 当项目启动后, 执行了maven的命令, maven首先访问的是本地仓库, 从仓库中获取所需的jar, 如果本地仓库没有 ,需要访问私服或者中央仓库或者镜像。image.png

6 maven的生命周期,插件和命令

maven的生命周期: 项目构建的各个阶段。 包括 清理, 编译, 测试,报告,打包,安装,部署
插件:要完成构建项目的各个阶段,要使用maven的命令, 执行命令的功能是通过插件完成的。插件就是jar,一些类。
命令: 执行maven功能是 由命令发出的。 比如 mvn compile

单元测试(junit):

junit是一个单元测试的工具, 在java中经常使用。
单元:在java中指的是方法。 一个方法就是一个单元, 方法是测试的最小单位。
作用:使用junit去测试方法是否完成了要求。 开发人员自测。
使用单元测试:

1)加入junit的依赖(一些类和方法)image.png

2)在src/test/java 目录中创建测试类文件。 写测试代码

单元测试使用的建议:
1.测试类的定义, 名称一般是Test+要测试的类名称
2.测试类它的包名和要测试的类包名一样。
3.在类中定义方法,要测试代码。
方法的定义:public方法,
没有返回值
方法名称自定义(建议 Test+测试的方法名称)
方法没有参数
4.在测试类中的方法,可以单独执行。 测试类也可以单独执行
5.在方法的上面加入@Test

命令:

注意: 有时候无法生效,需要点击项目结构 然后再回过来看文件是否生成或者删除
1) mvn clean: 清理命令, 作用删除以前生成的数据, 删除target目录。
2)mvn compile:编译命令,执行的代码编译, 把src/main/java目录中的java代码编译为class文件。
同时把class文件拷贝到 target/classes目录。 这个目录classes是存放类文件的根目录(也叫做类路径,classpath)
3)mvn test-compile: 编译命令, 编译src/test/java目录中的源文件, 把生成的class拷贝到target/test-classes目录。同时把src/test/resources目录中的文件拷贝到 test-clasess目录
4)mvn test:测试命令, 作用执行 test-classes目录的程序, 测试src/main/java目录中的主程序代码是否符合要求。
5)mvn package:打包,作用是把项目中的资源class文件和配置文件都放到一个压缩文件中, 默认压缩文件是jar类型的。 web应用是war类型, 扩展是jar,war的。
插件:maven-jar-plugin 版本 2.4。 执行打包处理。 生成一个jar扩展的文件, 放在target目录下.
打包的文件包含的是 src/main目录中的所有的生成的class和配置文件和test无关。
生成的是 ch01-maven-1.0-SNAPSHOT.jarimage.png
打包的文件名: artifactId-version.packaging
6)mvn install : 把生成的打包的文件 ,安装到maven仓库。
插件: maven-install-plugin 版本 2.4 。 把生成的jar文件安装到本地仓库。
查看查看中的jar文件:
com.bjpowernode
ch01-maven
1.0-SNAPSHOT
jar
groupId中的值, 如果有 “.” 前和后都是独立的文件夹。 com\bjpowernode
artifactId, 独立的文件夹
version,独立的文件夹

7 自定义配置插件

在pom.xml文件中, build标签中。设置插件





org.apache.maven.plugins
maven-compiler-plugin
3.8.1

1.8
1.8