简单易上手的maven基础(集成到idea+概念理解

简单易上手的maven基础(集成到idea+概念理解,第1张

简单易上手的maven基础(集成到idea+概念理解 简单易上手的maven基础(集成到idea+概念理解)

文章目录

简单易上手的maven基础(集成到idea+概念理解) 1.Maven的简介

1.2Maven可以干什么

1.3没有使用Maven的时候怎么管理依赖1.4什么是Maven 1.5Maven中的概念1.6Maven工具的获取和安装 二Maven的核心概念

2.1约定的目录结构(就是大多数人所遵循的目录结构)2.2pom的文件

下面我们对这个pom文件进行一一讲解 2.3坐标2.4依赖(dependency)2.5仓库2.6maven的生命周期,插件和命令2.7自定义配置插件在idea集合maven2.配置其他项目的2.创建普通的java项目(基于maven)3.3进行单元测试结语

1.Maven的简介

Maven是一个自动化的构建工具

1.1软件开发的阶段

需求分析:分析这个项目具体完成的功能,有什么需求,具体怎么实现

设计阶段:根据分析的结果 设计我们的项目使用什么技术,解决难点。

开发阶段:按照设计的内容,完成功能模块的开发(也就是编码实现功能)。我们写代码就得编译代码,自我测试一下保证写的功能是符合人家给你的任务。

测试阶段:专业的测试人员,来测试项目的功能是否符合设计要求。测试后,会写一个测试报告出来

项目的打包,发布阶段:给用户去安装项目,让用户去体验。

而这些枯燥的事情 Maven去帮助我们进行工作

1.2Maven可以干什么

(什么是jar包)

jar包就是把写好的类、接口、属性以及方法等打包,然后任何人在需要使用这些功能的时候引入这个jar包就可以了。这样免去了每个人重复编写代码,或者引入其他项目麻烦之处。

使用jar包的好处:某个功能的代码只需要编写一次,然后打成jar包,这样其他人使用相关功能的时候就不需要再编写代码,只需要引入jar包即可,在团队协作中可以节省很多时间,同时保证代码的一致性,到时候即使功能需要调整,也只需要改一个地方的代码,然后更新左右的jar包就可以了

1.项目的自动构建,帮助开发成员做项目代码的编译,测试,打包,安装,部署等工作。

2.管理依赖!(管理项目中使用的各种jar包)important

independence :项目中需要使用的其他资源就是依赖,常见的是jar包,比如说项目要使用MySQL驱动,那么我们就说我们的项目依赖这个驱动。

1.3没有使用Maven的时候怎么管理依赖

管理jar包,需要从网络上边单独下载某个jar包

需要选择正确版本

还要手工处理jar文件直接的依赖,比如说a.jar 里面要使用b.jar的类 如果我们不熟悉这个关系的话,我们就会出错

但是出现这个Maven出现之后,这些都不需要我们的 *** 作了。

1.4什么是Maven

Maven(专家,内行的意思)是Apache基金会的开源项目,使用java语法的开发。

Maven是项目的自动化的构建的工具,管理我们项目的依赖(主要的功能)。

1.5Maven中的概念

1.POM

2.约定的目录结构

3.坐标

4.依赖管理

5.仓库管理

6.声明周期

7.插件和目标

1.6Maven工具的获取和安装

地址

1、

确保安装了 java 环境:因为maven 本身就是 java 写的,所以要求必须安

装 JDK。

查看 java 环境变量:echo %JAVA_HOME%

2、

下载并解压 maven 安装程序:

http://maven.apache.org/download.cgi

这里还有安装包

链接:https://pan.baidu.com/s/1pOmcPh-LjXCN7uWhrGlh2w
提取码:yt12

大家自行获取就行 解压的目录不要有中文和空格

3、

配置 Maven 的环境变量:

MAVEN_HOME=d:/apache-maven-3.3.9 或者

M2_HOME=d:/apache-maven-3.3.9

path=%MAVEN_HOME%/bin; 或者%M2_HOME%/bin;

4、

验证是否安装成功:

mvn –v

出现上边的情况代表我们配置成功 我们输入 mvn -v如果配置成功就会出现这个

二Maven的核心概念 2.1约定的目录结构(就是大多数人所遵循的目录结构)

约定的是可以改 但是最好不要 我们遵循就好了

一个Maven项目对应一个文件夹,比如说一个项目叫hello

Hello
    src
        main主程序目录  完成项目功能的代码和配置文件
              java 放置我们的源代码 (包和相关类的定义)
               resources 配置文件
       test          放置我们的测试代码
           java  测试代码的()
           resources 测试程序需要的配置文件
    pom.xml   Maven的配置文件,核心文件
    

Maven可以独立使用:创建项目,编译代码,测试程序,打包,部署等等

Maven和idea一起使用,

输入mvn compile要在有pom.xml文件下才能输入这个命令 不然不会帮助我们进行编译

2.2pom的文件

DOM就是我们把整个页面当做一个对象来使用。

pom把我们的项目当做模型进行处理,处理这个模型就是 *** 作整个项目

即 Project Object Model 项目对象模型。Maven 把一个项目的结构和内

容抽象成一个模型,在 xml 文件中进行声明,以方便进行构建和描述,

pom.xml 是 Maven 的灵魂。所以,maven 环境搭建好之后,所有的学习和 ***

作都是关于 pom.xml 的。

也即是说 我们绝大多数时间都是和这个文件打交道的

Maven通过pom.xml文件实现项目的1构建和依赖的管理 *** 作

下面我们对这个pom文件进行一一讲解

//project 是一个根标签,后面是约束文件

    //这个是代表pom这个模型的版本
    4.0.0
//这个叫做坐标
  com.bjpowernode
  ch01-maven
  1.0-SNAPSHOT
  
  
     1.8
     1.8
     1.8
  
  


2.3坐标

坐标的组成为下面三部分,坐标的概念来自数学x y z 我们通过x y z三点可以确定一个唯一的点,同样的在这里我们可以通过下面这三个值确定互联网上的唯一的值

com.bjpowernode
ch01-maven
1.0-SNAPSHOT

坐标的作用 是确定资源的唯一标识,在Maven中,每一个资源都得对应一个坐标,简称gav

com.bjpowernode
ch01-maven
1.0-SNAPSHOT
grouId:组织名称,代码。公司团体或者单位的表示,这个值常使用的是公司域名的倒写。
artifactId:叫做项目名称 如果groupid中有项目的话,此时当前的值就是子项目名。项目名称一般也是唯一的
version:表示版本的意思,项目的版本号5.2.5版本 这个都是我们自己定义的版本号
注意 如果你的版本号中出现 sharpshot的时候 那么说实话是一个快照,表示不稳定这个版本。

项目中使用坐标gav

1.每个maven都需要一个自己的gav

2.管理依赖的时候,需要使用其他的jar包,也需要其他gav

搜索(我们想要使用直接来这里找就行)

Maven Repository: Search/Browse/Explore (mvnrepository.com)

这里对应我们想要下载的jar包都在这里面

2.4依赖(dependency)

依赖指的是说 你的项目使用的其他资源(jar)。比如说你用到了MySQL驱动 说明你依赖MySQL驱动。

通过使用dependency和gav一起完成依赖的使用。

我们需要在pom.xml文件中,使用dependency和dependencies

//这个里面有很多的dependency在其中
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.springframework.boot
            spring-boot-starter-web
            项目的打包类型,有jar,war,ear,pom等等 默认是jar这个放在坐标的下面
        
    

我们输入进去 之后 我们的maven会默默的在后面工作 帮助我们从互联网上去下载 我们就不用管了。

maven使用gav作为标识,从互联网上下载依赖的jar包。下载到本机上边,有maven管理项目使用的这些jar包。

我们可以从这个网站获取这些依赖Maven Repository: Search/Browse/Explore (mvnrepository.com)

2.5仓库

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

1.maven工具自己需要的jar包

2.第三方其他的jar包 (比如说项目中需要用到的MySQL驱动)

3.自己写的程序可以打包为一个jar存放到仓库里面去。

仓库的分类

1.本地仓库(本机仓库):自己的计算机之上的,位于磁盘中的某个目录

本地仓库默认位置在 是你登陆 *** 作系统的账号的目录中/.m2.responsity

修改本地仓库的位置 :需要修改maven工具的配置文件(maven的安装路径confsettings.xml)

1.创建一个目录作为仓库使用(这个目录不要有中文和空格 也不用目录太深)

2.例如D:openrepository

3.修改setting.xml文件,指定D:Myrepository这个目录//这个是我们自己创建的目录下的文件 *** 作 注意将反斜杠的位置换一下

 D:/Myrepository

然后我们将我们的文件直接copy过来到我们的这个新建的目录下面就行了

我们仓库中有的东西 ,我们在进行编译的时候我们就可以直接从里面拿 要是没有 maven就会帮助我们从网上下载 下载完成之后就会在我们的本地仓库里面。

3.我们每个人都需要一个本地仓库的

仓库的分类 1 本地仓库,就是你的个人计算机上的文件夹,存放各种jar

2.远程仓库,在互联网上的,使用网络才能使用的仓科

3.中央仓库 最权威的,所有开发人员都共享的一个集中仓库,

地址Maven Repository: Search/Browse/Explore (mvnrepository.com)

中央仓库的镜像 就是中央仓库的备份,在各大洲,重要的城市都是镜像

我们的用户都是先从本州的镜像里面去访问数据 如果拿到的话 就不用去中央仓库里面去拿,这样一定上的减轻了中央仓库的压力

4.私服 用在局域网,公司内部进行使用的 不是对外使用的这个 公司以外的人员用不了的意思是


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

maven的生命周期就是:项目的构建的各个阶段。包括清理,编译,测试,报告,打包,安装,部署。

插件:要完成构建项目的各个阶段,要使用maven命令,执行命令的功能是通过插件完成的,插件就是jar包,一些类。

命令:执行maven的功能是由命令发出的, 比如 mvn compile

单元测试(Junit)是一个单元测试工具,一个方法就是一个单元,方法是测试的最小单元。

作用:使用print去测试方法是否完成了要求。开发人员自己测试。我们之前是使用main测试 但是要是同时测试多个方法咋办?会很乱的

使用单元测试:

1.加入Junit的依赖(一些类和方法)(我们先看一下我们本地仓库里面有没有这个依赖)


    junit
    junit
    4.12
    test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8iyC9SNO-1642737058620)(C:Users86189AppDataRoamingTyporatypora-user-imagesimage-20220120221216381.png)]

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

单元测试使用的建议

1.测试类的定义,建议一般是test+要测试的类的名称

2.测试类它的包名要和测试的类包名一样。

3.在类中定义方法,要测试代码。

​ 方法定义:public方法,

​ 没有返回值

​ 方法名称自定义

​ 方法没有参数

4.在测试类中的方法,可以单独执行测试类也可以单独执行!!!

5.在方法上面加上@Tset注解

//下面是自己书写的 测试代码

package com.yt1105;
import org.junit.Assert;
import org.junit.Test;
public class TestHelloMaven{      
@Test
 public void testAddNumber(){
 System.out.println("执行 HelloMaven 类 addNumber()方法");
 int n1 = 10;
int n2 = 20;
 int res = 0;
 HelloMaven hello =new HelloMaven();
 res = hello.addNumber(n1,n2);
 // 期望值,实际值
//把计算的结果交给Junit进行判断
 Assert.assertEquals(30,res);
 }

@Test
 public void testAddNumber(){
 System.out.println("执行 HelloMaven 类 addNumber()方法");
 int n1 = 10;
int n2 = 30;
 int res = 0;
 HelloMaven hello =new HelloMaven();
 res = hello.addNumber(n1,n2);
 // 期望值,实际值
//把计算的结果交给Junit进行判断
 Assert.assertEquals(40,res);
 }
}

命令

mvn clean: 清理命令,作用删除以前生成额数据,删除targe

maven-clean-plugin:2.5:clean 这个是用的插件

作用就是删除target目录

2.编译代码

mvn compile 执行代码的编译 把src/main/java 代码编译为class文件

同时把class文件拷贝到target/classes目录,这个目录classes是存放类文件的根目录,也叫做类路径,classpath

使用的插件是

maven-resources-plugin:2.6:resources 用来copy文件的 *** 作,是把src/main/resources目录中的文件copy到target/classes下

maven-compiler-plugin:3.1:compile 这个是用来编译代码的功能

3).mvn test-compile 编译src/test/java目录中的源文件,把生成的class直接copy到target/test/test-classes目录下面

同时把src/test/resources目录中的文件拷贝到test-classes目录中。

4).mvn test 测试命令 ,作用执行test-classes目录中的程序,测试我们之前写的main方法中的主程序代码是否符合要求。

执行的截图

第一个是一个文本里面是我们的测试报告。

5.mvn package:

这个叫做打包 *** 作,把我们的项目中的资源和配置文件都放到一个压缩文件中,默认压缩文件是jar类型的。web应该是一个war类型。

打包类似于压缩 处理

然后我们如何对我们当前的项目进行打包处理

使用的插件是maven-jar-plugin:2.4,执行打包处理,会生成一个jar扩展的文件,放在target目录下面。

 

  com.bjpowernode
  ch01-maven
  1.0-SNAPSHOT
  jar
打包的文件名字 artifactID+version+packing 就组成了我们的文件

我们打开看看里面是什么东西 我们采取压缩文件的方式进行打开就行

com里面不就是我们的类文件

这些东西都来字我们的main里面 和我们的test无关(来自我们的src/main/目录中生成的class和配置文件)

我们以后就把这个jar文件拷给我们的同事就好

6.mvn install

把我们生成的打包文件,安装到maven仓库

​ 插件: maven-install-plugin 版本 2.4 。 把生成的jar文件安装到本地仓库。

我们看看这个路径怎么组成的

  com.bjpowernode
  ch01-maven
  1.0-SNAPSHOT
  jar

groupId中的值, 如果有 "."作分隔的话, 前和后都是独立的文件夹。 combjpowernode 这就是两个文件夹
artifactId, 独立的文件夹 就会出现一个叫做ch01-maven的独立文件夹
version,独立的文件夹

7.mvn deploy 这个是将我们的部署 *** 作(不先学)

以上所以命令必须是在pom.xml所在的目录下面才行。

2.7自定义配置插件

在pom.xml里面配置的,

这个是我们比较常用的插件

在idea集合maven

3.1idea中继承maven

idea中有一个自带的maven,但是自带的不方便,我们要让idea使用我们自己安装的maven

1.设置当前项目的maven相关配置

2.配置其他项目的

我们2020版本的在

这里

2.创建普通的java项目(基于maven)

这里是添加模版创建项目的

这个创建的目录和我们自己手写的一样 这样就是创建成功了

这里我们可以取设置我们目录的类型

3.3进行单元测试

3.4maven中的工具命令

结语

到这里我们的项目基本就是可以满足需要的使用

idea中集成了maven的话就是大大便利了我们的开发效率,可以说是十分的方便

简单理解,maven就是我们的一个小助手,帮助我们去完成了各式各样的导包 *** 作。

大家要是觉得不错可以

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5710267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存