maven之【核心概念】

一、maven的作用

1、管理依赖:jar管理,下载,版本

2、构建项目:完成项目代码的编译,测试,打包,部署

3、使用方式:

(1)独立使用maven:使用maven的命令,完成代码的编译,测试,打包等

(2)结合开发工具使用,一般在idea中使用maven:简单,快捷,不需要记命令

二、核心概念简介

1、有哪些概念?

①POM:一个文件,名称是pom.xml,pom翻译过来叫做项目对象模型。maven把一个项目当做一个模型使用。控制maven构建项目的过程,管理jar依赖。

②约定的目录结构:maven项目的目录和文件的位置都是规定的。

③坐标:是一个唯一的字符串,用来表示资源的。

④依赖管理:管理你的项目可以使用jar文件

⑤仓库管理:你的资源存放的位置

⑥生命周期:maven工具构建项目的过程,就是生命周期

⑦插件和目标:执行maven构建的时候用的工具就是插件

⑧继承:

⑨聚合:

2、Maven工程约定目录结构

(1)maven约定的目录结构,约定是大家都遵守的一个规则。

每一个maven项目在磁盘中都是一个文件件(以项目Hello为例)

Hello/

   |---/src                                

   |---|---|/main                        放主程序java代码和配置文件

   |---|---|---/java                      你的程序包和包中的jar文件

   |---|---|---/resources             你的java程序中要使用的配置文件

   |---|---|/test

   |---|---|---/java                        测试程序包和包中的jar文件

   |---|---|---/resources               测试java程序中要使用的配置文件

   |---|/pom.xml                         maven的核心文件【maven项目必须有】

3、pom文件【Project Object Model】

(1)groupId

1、组织id,一般是公司域名的倒写,格式可以为:

(1)域名倒写

(2)域名倒写+项目名

(2)artifactId

1、项目名称,也是模块名称,对应groupId中项目中的子项目

(3)version

1、项目的版本号。如果项目还在开发中,是不稳定版本,通常在版本后带-SNAPSHOT

2、version使用三位数字标识,例如1.1.0

(4)坐标

1、groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,在众多的maven项目中可以唯一定位到某一个项目。坐标也决定将来项目在仓库中的路径和名称。

(5)packaing

1、项目打包的类型,默认是jar,web应用是war

(6)dependency、dependencies

1、表示项目中要使用的各种资源的说明。【相当于java中的import】

2、以mysql为例:

       

                mysql

                mysql-connector-java

                5.1.9

       

(7)properties

1、用来定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止出现中文乱码,也可定义相关构建版本号,便于日后统一升级

(8)build

1、maven在进行项目的构建时,配置信息。例如指定编译java代码使用的jdk版本

4、仓库

(1)项目是什么

仓库是存放东西的,存放maven的插件和项目所需要使用的jar。

(2)仓库的分类

1、本地仓库

(1)个人计算机上的文件夹,存放各种jar

2、远程仓库

(1)就是互联网上的,使用网络才能使用的仓库

(2)中央仓库:最权威的,所有开发人员都共享的一个集中的仓库【https://repo.maven.apache.org】

(3)中央仓库的镜像:就是中央仓库的备份。

(4)私服:在公司内部,在局域网内使用,不是对外使用的。

(3)仓库的使用

1、maven的仓库的使用不需要人为参与

2、如何使用:(以mysql为例)

(1)maven首先查本地仓库

(2)如果本地仓库没有,则再查私服

(3)私服没有,再查中央仓库的景象

(4)镜像没有,再查中央仓库

5、Maven的生命周期

6、插件

(1)maven命令执行时,真正完成功能的是插件,插件是一些jar文件,一些类。

(1)单元测试

1、用的是junit,junit是一个专门测试的框架(工具)

2、junit测试的内容:测试的是类中的方法,每一个方法都是独立测试的,方法是测试的基本单位(单元)

3、maven借助单元测试,批量的测试类中的大量方法是否符合预期。

4、如何使用:

(1)加入依赖,在pom.xml加入单元测试依赖

(2)在maven项目中的src/test/java目录下,创建测试程序。

①推荐的创建测试类和方法的提示:测试类的名称是Test加上要测试的类名,测试方法的名称是Test加上要测试的方法名。

②假如要测试是HelloMaven

创建测试类 TestHelloMaven

@Test

public void testAdd(){

        测试是否正确

}

其中testAdd叫做测试方法,定义规则:方法必须是public、方法必须没有返回值、方法名称自定义、方法必须加注解@Test

(2)配置插件

       

               

               

               

               

               

               

               

                       

                        1.8

                       

                        1.8

                

        

       

        

7、maven常用命令

执行以下命令时,必须在命令行进入pom.xml所在目录

(1)mvn compile

1、这条命令是用来编译src/main目录下的所有java文件。

2、当第一次使用这条命令的时候,需要下载一系列文件【maven工具执行操作所需的插件(jar文件)】

(1)默认下载到C:\Users\Administrator\.m2\repository【本地仓库】

(2)如何修改默认下载地址:

①修改maven的配置文件,maven安装目录/conf/settings.xml

②修改指定你的目录(不要使用中文目录)

3、把main/resources目录下的所有文件拷贝到target/classes目录下

(2)mvn clean

1、清理(会删除原来的编译和测试的目录,即target目录,但是已经install到仓库里的包不会删除)

(3)mvn test-compile

1、编译测试程序(会在当前目录下生成一个target,里面存放编译测试程序之后生成的字节码文件)

(4)mvn test

1、测试(会生成一个目录surefire-reports,保存测试结果)

(5)mvn package

1、打包主程序(会编译、编译测试、测试、并且按照pom.xml配置把主程序打包生成jar包或者war包)

(6)mvn install

安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)

(7)mvn deploy

部署主程序(会把本程序打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中,还会自动把项目部署到web容器中)

你可能感兴趣的:(maven,maven,java,intellij-idea)