Maven学习记录1
1. 仓库
① 什么是仓库
为了提高构建的效率和构件复用,maven把所有的构件统一存储在某一个位置,这个位置就叫做仓库
仓库是存放东西的, 存放maven使用的jar 和 我们项目使用的jar
② 仓库的位置
根据仓库存储的位置,把仓库分为本地仓库和远程仓库
- 本地仓库:存在于当前电脑上,默认存放在~.m2\repository中,为本机上所有的Maven工程服务。
你也可以通过Maven的配置文件Maven_home/conf/settings.xml中修改本地仓库所在的目录。
~ 是用户的主目录,windows系统中是 c:/user/登录系统的用户名 - 远程仓库:分为中央仓库、中央仓库镜像、自己架设的私服
- 中央仓库是maven默认的远程仓库,其地址是:http://repo.maven.apache.org/maven2/
- 中央仓库的镜像为中央仓库分担流量。减轻中央仓库的访问、下载的压力
- 私服是在局域网环境中部署的服务器,为当前局域网范围内的所有 Maven工程服务
③ Maven 对仓库的使用
开发人员需要使用某驱动—>maven首先查本地仓库—>私服—>镜像—>中央仓库
2. POM
即 Project Object Model,项目对象模型,是一个pom.xml文件
Maven 把一个项目的结构和内容抽象成一个模型,在 xml 文件中进行声明,以方便进行构建和描述
1)坐标:唯一值, 在互联网中唯一标识一个项目的——通过以下三个来找寻
<groupId>公司域名的倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号</version>
https://mvnrepository.com/ 搜索使用的中央仓库, 使用groupId 或者 artifactId作为搜索条件
2) packaging: 打包后压缩文件的扩展名,默认是jar ,web应用是war
packaging 可以不写, 默认是jar
3) 依赖
dependencies 和dependency ,相当于是 java代码中import
你的项目中要使用的各种资源说明, 比我的项目要使用mysql驱动
<dependencies>
<!--依赖 java代码中 import -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
4)properties:设置属性
5)build : maven在进行项目的构建时配置信息,如指定编译java代码使用的jdk的版本等
3. Maven的常用命令
maven的生命周期:就是maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署
maven独立使用,通过命令,完成maven的生命周期的执行
maven的插件: maven命令执行时,真正完成功能的是插件,插件就是一些jar文件, 一些类
mvn clean
清理(会删除原来编译和测试的目录,即 target 目录,但是已经 install 到仓库里的包不会删除)
mvn compile
编译主程序(会在当前目录下生成一个 target,里边存放编译主程序之后生成的字节码文件)
mvn test-compile
编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)
mvn test
测试(会生成一个目录surefire-reports,保存测试结果)
mvn package
打包主程序(会编译、编译测试、测试、并且按照 pom.xml 配置把主程序打包生成 jar 包或者 war 包)
mvn install
安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
mvn deploy
部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。还会自动把项目部署到 web 容器中)。
注意:执行以上命令必须在命令行进入 pom.xml 所在目录!
使用说明:
0)单元测试:使用junit,其为一个专门用于测试的工具(框架)
测试每个类中的方法,每个方法都是独立测试,即方法为测试的基本单位、基本单元
所以,maven借助单元测试,批量的测试你类中的大量方法是否符合预期的
1)在pom.xml中加入依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
2)在maven项目中的src/test/java目录下,创建测试程序
推荐的创建类和方法的提示:
- 测试类的名称 是Test + 你要测试的类名
- 测试的方法名称 是:Test + 方法名称
例如你要测试HelloMaven ,
创建测试类 TestHelloMaven
@Test
public void testAdd(){
//测试HelloMaven的add方法是否正确
}
// 其中testAdd叫做测试方法,它的定义规则
// 1.方法是public的,必须的
// 2.方法没有返回值, 必须的
// 3.方法名称是自定义的,推荐是Test + 方法名称
// 4.在方法的上面加入 @Test
3)先mvn compile
然后 mvn test-compile
注意:test里的方法名要与main里的一致
4)执行mvn test
会自动将前面的clean、compile、test-compile均执行一遍,只有该步骤成功才能后续打包
5)执行mvn package
将项目打包,由于会自动运行mvn test,所以才要求上一步能正确
6)若执行mvn install
将打包的项目安装至本地仓库,其他项目或程序就可以调用
7)部署命令基本不用