【Maven】基础

编程入门 行业动态 更新时间:2024-10-26 10:30:36

【Maven】<a href=https://www.elefans.com/category/jswz/34/1770030.html style=基础"/>

【Maven】基础

Maven安装《《《

文章目录

  • 一、Maven简介
    • 1、软件开发当中的阶段
    • 2、Maven能做什么
    • 3、没有Maven怎么管理依赖
    • 4、什么是Maven
  • 二、Maven中的概念
    • 1、约定的目录结构
    • 2、pom文件
    • 3、坐标
    • 4、依赖 dependency
    • 5、仓库
    • 6、Maven的生命周期,插件和命令
  • 三、单元测试
    • 1、使用单元测试
    • 2、创建测试类和测试方法
    • 3、命令
  • 四、Maven与idea
    • 1、idea集成Maven
    • 2、创建基于maven的普通项目
    • 3、单元测试
    • 4、maven的工具窗口

一、Maven简介

1、软件开发当中的阶段

  • 需求分析:分析项目具体完成的功能,有什么要求,具体怎么实现。
  • 设计阶段:根据分析的结果,设计项目使用什么技术,解决难点。
  • 开发阶段:编码实现功能。编译代码。自我测试。
  • 测试阶段:专业的测试人员,测试整个项目的功能,得出一个测试报告。
  • 项目的打包和发布:给用户安装项目。

2、Maven能做什么

  • 1、项目的自动构建,帮助开发人员做项目代码的编译,测试,打包,安装,部署等工作。
  • 2、管理依赖。(管理项目中使用的各种jar包)
    • 依赖:项目中需要使用的其他资源,常见的是jar包。比如项目要使用mysql驱动,我们就说项目依赖mysql驱动。

3、没有Maven怎么管理依赖

  • 管理jar,需要从网络中单独下载某个jar,需要选择正确的版本,手工处理jar文件之间的依赖。

4、什么是Maven

Maven是apache基金会的开源项目,使用java语言开发。

Maven可以把jar包所依赖的其他jar包自动下载并引入项目。

构建过程中的各个环节:清理,编译,测试,报告,打包,安装,部署

Maven的使用方式:

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

  • Maven也可以和idea一起使用:通过idea借助Maven来实现编译,测试,打包等等。

二、Maven中的概念

1、约定的目录结构

  • Maven项目使用的大多数人遵循的目录结构,叫做约定的目录结构。
  • 一个Maven项目是一个文件夹。比如一个叫做Hello的项目:
Hello     项目文件夹\src\main          叫做主程序目录(完成项目功能的代码和配置文件)\java      源代码(包和相关的类定义)\resource  配置文件\test          放置测试程序代码的(开发人员自己写的测试代码)\java      测试代码的(junit)\resource  测试程序需要的配置文件\pom.xml           Maven的配置文件,核心文件

按照上面的目录创建相应的文件夹:

package com.powernode;public class HelloMaven{public int addNumber(int n1,int n2){System.out.println("hello maven");return n1+n2;}public static void main(String args[]){HelloMaven hello=new HelloMaven();int res=hello.addNumber(10,20);System.out.println("在main方法中,执行hello的方法"+res);}
}

在命令行输入:

mvn compile


2、pom文件

POM:即Project Object Model 项目对象模型。Maven把一个项目的结构和内容抽象成一个模型,在xml文件中进行声明,以方便进行构建和描述。

<!-- project是根标签,后面是约束文件 -->
<project xmlns=".0.0" xmlns:xsi="" xsi:schemaLocation=".0.0 .0.0.xsd"><!-- pom模型的版本 -->
<modelVersion>4.0.0</modelVersion><!-- 当前项目的坐标 -->
<groupId>com.bjpowernode</groupId>
<artifactId>ch01-maven-java</artifactId>
<version>1.0</version><!-- maven的常用设置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<mavenpiler.source>1.8</mavenpiler.source>
<mavenpiler.target>1.8</mavenpiler.target>
</properties><!-- 依赖列表 -->
<dependencies><!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build><!-- 资源插件 -->
<resources>
<resource>
<directory>src/main/java</directory><!-- 所在的目录 -->
<includes><!-- 包括目录下的.properties,.xml 文件都会扫描到 -->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes><!--   filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了  -->
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>

3、坐标

  • 坐标组成:groupid,artifiactid,version。

  • 坐标作用:确定资源的,是资源你的唯一标识。在maven中,每个资源都是坐标。坐标值是唯一的。简称叫gav。

<!-- 当前项目的坐标 -->
<groupId>com.bjpowernode</groupId>
<artifactId>ch01-maven-java</artifactId>
<version>1.0</version>
  • groupId:组织名称,代码。是公司,团体或者单位的标识。这个值常使用公司域名的倒写。
  • artifactId:项目名称,如果groupId中有项目,此时当前的值就是子项目名。项目名称是唯一的。
  • version:版本,项目的版本号,使用的数字。由三位组成。例如:主版本号.次版本号.小版本号。
    • 注意:版本号中如果有-SNAPSHOT,表示快照,不是稳定的版本。

项目使用gav:

1、每个maven项目,都需要有一个自己的gav。

2、管理依赖,需要使用其他的jar,也需要使用gav作为标识。

搜索相关坐标的地址<<<

4、依赖 dependency

依赖:项目中要使用的其他资源(jar)。

需要使用maven表示依赖,管理依赖。通过使用dependency和gav一起完成依赖的使用。

需要在pom.xml文件中,使用dependencies和dependency,还有gav完成依赖的说明。

格式:表示我要找mysql项目的8.0.29版本的jar包。

<dependencies><!-- 日志 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version><packaging>jar</packaging>//表示此项目最终生成的是jar文件</dependency></dependencies>
  • maven使用gav作为标识,从互联网下载依赖的jar包,下载到你的本机上,由maven管理项目使用的这些jar包。
  • packaging:表示项目的打包类型,有jar,var,ear等等,默认是jar。

5、仓库

maven的仓库存放的是:

  • 1、maven工具自己的jar包。
  • 2、第三方的其他jar,比如项目中要使用mysql驱动。
  • 3、自己写的程序,可以打包为jar,存放到仓库。

仓库的分类:

  • 1、本地仓库(本机仓库):位于自己的计算机,它是磁盘中的某个目录。本地仓库:默认路径是自己登录操作系统的账号的目录中。/.m2/repository
  • 2、修改本地仓库的位置:修改maven工具的配置文件
    • 【1】创建一个目录,作为仓库使用。目录不要有中文和空格。目录不要太深。


<localRepository>D:/openrepository</localRepository>


在把这个路径下的文件都拷贝到我们自己创建的目录。

6、Maven的生命周期,插件和命令

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

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

  • 命令:执行Maven的功能是由命令发出的。比如:mvn compile

三、单元测试

  • Junit是一个单元测试的工具,在java当中经常使用。
  • 单元:在java中指的是方法。一个方法就是一个单元,方法是测试的最小单位。
  • 作用:使用Junit去测试方法是否完成了要求,开发人员自测。

1、使用单元测试

  • 1、加入Junit的依赖(一些类和方法)‘
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>
  • 2、在src/test/java目录中创建测试类文件,写测试代码

单元测试的建议:
【1】测试类的定义,名称一般是Test+要测试的类的名称
【2】测试类它的包名和要测试的类包名一样
【3】在类中定义方法,要测试的代码:
方法的定义:

  • public方法
  • 没有返回值
  • 方法名称自定义(建议Test+)
  • 方法没有参数

【4】在测试类中的方法,可以单独执行,测试类也可以单独执行。

2、创建测试类和测试方法

在pom.xml文件中加入下面代码

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>


在如下目录创建java的测试文件:

package com.powernode;
import org.junit.Assert;
import org.junit.Test;public class TestHelloMaven{
//     定义多个独立的测试方法,每个方法都是独立的@Testpublic void testAddNumber1(int n1,int n2){System.out.println("执行了测试类testAddNumber");HelloMaven hello=new HelloMaven();int res=hello.addNumber(10,20);//把计算结果res交给junit判断//期望值,实际值//断言类,判断两个结果是否相等,如果不等就会抛出异常。Assert.assertEquals(30,res);}@Testpublic void testAddNumber2(int n1,int n2){System.out.println("执行了测试类testAddNumber");HelloMaven hello=new HelloMaven();int res=hello.addNumber(20,30);//把计算结果res交给junit判断//期望值,实际值//断言类,判断两个结果是否相等,如果不等就会抛出异常。Assert.assertEquals(50,res);}}

3、命令

  • 1、mvn clean:清理命令,作用是删除以前生成的数据,删除target目录。
  • 2、mvn compile:编译命令,执行的是代码的编译,把src/main/java目录中的java代码编译为class文件。同时把class文件拷贝到target/classes目录。这个目录classes是存放类文件的根目录。(也叫做类路径classpath)
  • 3、mvn test-compile:编译命令,编译src/main/java目录中的源文件,把生成的class文件拷贝到target/test-classes目录。同时把src/test/resources目录中的文件拷贝到test-classes目录,同时把src/test/resources目录中的文件拷贝到test-classes目录
  • 4、mvn test:测试命令,执行test-classes目录的程序,测试src/main/java目录中的主程序代码是否符合要求。
  • 5、mvn package:打包,作用是把项目中的资源class文件和配置文件都放到一个压缩文件中,默认压缩文件是jar类型,web应用是war类型的。
  • 6、mvn install:把生成的打包的文件,安装到maven仓库。

四、Maven与idea

1、idea集成Maven

idea有自带的maven,而我们要让idea使用我们自己安装的maven,这个过程叫做集成。



-DarchetypeCatalog=internal


2、创建基于maven的普通项目

首先创建一个空项目:

创建一个模块:


创建好项目了:

3、单元测试





注:这里如果不把java变成绿色的文件夹那么就无法在test里面创建java的class。

idea maven项目的test目录下,无法直接创建class?


按上面四个序号创建package和class文件:做一个简单的加法测试

public class HelloMaven {public int addNumber(int n1,int n2){return n1+n2;}public static void main(String[] args) {HelloMaven helloMaven=new HelloMaven();int res=helloMaven.addNumber(10,20);System.out.println("res="+res);}
}
public class TestHelloMaven {@Testpublic void testAddNumber1(){System.out.println("testAddNumber1~~~");HelloMaven hello = new HelloMaven();int res=hello.addNumber(10,20);Assert.assertEquals(30,res);}@Testpublic void testAddNumber2(){System.out.println("testAddNumber2~~~");HelloMaven hello = new HelloMaven();int res=hello.addNumber(20,30);Assert.assertEquals(50,res);}
}

4、maven的工具窗口

在界面的右侧:



更多推荐

【Maven】基础

本文发布于:2024-02-12 08:36:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1686992.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础   Maven

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!