第一章 maven的介绍
1.1 软件开发中的阶段
1.2 maven能做什么
-
项目的自动构建:编译,测试,打包,安装,部署等工作
-
管理依赖:依赖 常见jar、项目驱动-mysql驱动
1.3 没有maven怎么管理依赖
-
需要单独下载jar
-
需要选择正确版本
-
手工处理jar文件之间的依赖1.4 什么是maven
1.4 什么是maven
Java语法 Apache基金会的开源项目
自动化的构建工具
管理项目的依赖
1.5 maven中的概念
- POM
- 约定的目录结构
- 坐标
- 依赖管理
- 仓库管理
- 生命周期
- 插件和目标
- 继承
- 聚合
1.6 maven的安装
maven官网从中下载文件
安装
- 确定JAVA_HOME指定的jdk的安装目录,如果没有JAVA_HOME,需要在windows的环境变量中创建JAVA_HOME,它的值是jdk的安装目录
- 解压缩 apache-maven-3.3.9-bin.zip,吧解压后的文件放到一个目录中。目录的路径不要有中文,不要有空格
- 把maven安装目录中下的bin的路径添加到path中
- 测试maven安装。在命令行执行mvn –v
C:\Users\11206>mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: D:\apache-maven-3.3.9-bin\apache-maven-3.3.9\bin\..
Java version: 15.0.2, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-15.0.2
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
maven的其他安装方式
- 确定JAVA_HOME是否有效
- 在环境变量中创建一个M2_HOME,路径是安装目录
- 在path环境变量中加入%M2_HOME%\bin
- 测试Maven的安装,执行命令行mvn –v
第二章 maven的核心概念
2.1 约定的目录结构
maven项目使用大多数人遵循的目录结构,叫做约定的目录结构
一个maven项目是一个文件夹。比如项目叫做hello
Hello 项目文件夹
\src
\main 叫做主程序目录(完成项目功能的代码和配置文件)
\java 源代码(包和相关的类定义)
\resources 配置文件
\test 放置测试程序代码的(开发人员自己写的测试代码)
\java 测试代码的(junit单元测试)
\resources 测试程序需要的配置文件
\pom.xml maven的配置文件,核心文件
maven可以独立使用:船检项目,编译代码,测试程序,打包,部署等等
maven和idea一起使用:通过idea借助maven,实现编码,测试,打包等等。
独立使用
- 建立上面所述文件夹
- 建立main中的java源代码
- 在pom.xml文件中cmd
- 执行 mvn compile(首次下载会从maven中央仓库下载maven的下载过程)
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 1 source file to D:\maven\mavenWork\Hello\target\classes //打开的文件名
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:39 min
[INFO] Finished at: 2021-07-21T15:39:43+08:00
[INFO] Final Memory: 13M/40M
[INFO] ------------------------------------------------------------------------
<D:\maven\mavenWork\Hello\target\classes>在该文件夹下的命令行中输入
D:\maven\mavenWork\Hello\target\classes>java com.bjpowernode.HelloMaven
输出
D:\maven\mavenWork\Hello\target\classes>java com.bjpowernode.HelloMaven
HlloMaven addNumber
在main方法中,执行hello的方法=30
2.2 pom文件
project object model 项目对象模型,maven把项目当做模型处理,操作这个模型就是操作项目。
Maven通过pom.xml文件实现 项目的构建和依赖的管理。(pom.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!-- projecet是跟标签 后面的约束文件-->
<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>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>
2.3 坐标
坐标组成是groupid(x),artifactid(y),version(z)。坐标概念来自数学。
坐标作用:确定资源的,是资源的唯一标识。在maven中,每个资源都是坐标。坐标纸是唯一的。简称gav。
<groupId>com.bjpowernode</groupId>
<artifactId>ch01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
groupId:组织名称,代码。公司,团体或者单位的标识。这个值常使用公司域名的倒写。
例如:学校的名称 www.jxcjdx.com
groupId:com.jxcjdx
如果项目规模比较大,也可以是域名倒写+项目名称。
例如:www.baidu.com,无人车:com.baidu.appollo
artifactId:项目名称,如果groupId中有项目,此时当前的值就是子项目名。项目名称是唯一的。
version:版本,项目的版本号,使用的数字,三位组成。例如:主版本号.次版本号.小版本号。例如:5.1.1
注意:版本号中有-shapshot,表示快照,不是稳定的版本。
packaging:项目打包的类型,有jar,war,ear,pom等等,默认是jar
项目使用gav:
- 每个maven项目,都需要有一个自己的gav
- 管理依赖,需要使用其他的jar,需要用gav
搜索坐标的地址:https://mvnrepository.com/
2.4 依赖 dependency
依赖:项目中要使用的其他资源(jar)。
需要使用maven表示依赖,管理依赖。通过使用dependecy和gav一起完成以来的使用。
需要在pom.xml文件中,使用dependencies和denpendency,还有gav完成依赖的说明。
格式:
<dependencies>
<!-- 日志 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.16</version>
</dependency>
</dependencies>
maven使用gav作为表示,从互联网下载依赖的jar。下载到你的本机上。由maven管理项目使用的这些jar
2.5 仓库
仓库是存放东西的,maven的仓库存放的是:
- maven工具自己的jar
- 第三方的其他jar,比如项目中要使用mysql驱动。
- 自己写的程序,可以打包为jar,存放到仓库。
仓库分类:
-
本地仓库(本机仓库):位于你自己的计算机,他是磁盘中的某个目录。
默认路径,是你登录操作系统的账号的目录中\.m2\repository
例如:
C:\Users\11206\.m2\repository修改本地仓库的位置:修改maven工具的配置文件(maven安装路径\conf\setting.xml)
步骤:
-
创建一个目录,作为仓库用。目录中不要中文和空格。目录不要太深
例如:D:\mavenJar
-
修改setting.xml文件,指定D:\mavenJar这个目录
<localRepository>D:\mavenJar</localRepository>- 提供的仓库资源 拷贝到D:\mavenJar中
-
2.6 maven的生命周期,插件和命令
maven的生命周期:项目构建的各个阶段,包括清理,编译,测试,报告,打包,安装,部署
插件:要完成构建项目的各个阶段,要使用maven的命令,执行命令的功能是通过插件完成的。插件就是jar,一些类。
命令:执行maven功能是由命令发出的。比如 mvn compile
单元测试(junit):
junit是一个单元测试的工具,在java中经常使用。
单元:在Java中指的是方法。一个方法就是一个单元,方法是测试的最小单元。
作用:使用junit去测试方法是否完成了要求,开发人员自测。
使用单元测试:
-
加入junit的依赖(一些类方法)
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> -
在src/test/java目录中创建测试类文件。写测试代码
单元测试使用的建议:
-
测试类的定义,名称一般是Test+要测试类的名称
-
测试类它的包名和要测试的类包名一样
-
在类中定义方法,要测试代码。
方法的定义:public方法
没有返回值
方法名称自定义(建议Test+测试方法名)
方法没有参数
-
在测试类中的方法,可以单独执行,测试类也可以单独执行
-
在方法的上面加入@Test
-
命令:
- mvn clean:清理命令,作用删除以前生成的数据,删除target目录
更新中,让我们一起学习吧
本文介绍了Maven的基本概念和使用,包括项目的自动构建、依赖管理、约定的目录结构、POM文件、坐标、仓库和生命周期。Maven简化了Java项目的构建过程,通过POM.xml文件管理依赖,并通过坐标确定资源。它还使用本地和远程仓库存储依赖项,提供了如编译、测试和打包等生命周期阶段。此外,文章还提到了Maven的安装步骤和如何使用Maven进行单元测试。

1620

被折叠的 条评论
为什么被折叠?



