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目录下,创建测试程序
推荐的创建类和方法的提示:

  1. 测试类的名称 是Test + 你要测试的类名
  2. 测试的方法名称 是: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,所以才要求上一步能正确

java 包地址和本地地址相同 java本地仓库 指的是什么_java 包地址和本地地址相同


6)若执行mvn install

将打包的项目安装至本地仓库,其他项目或程序就可以调用

7)部署命令基本不用