maven是什么-csdnNote-更新中

本文介绍了Maven的基本概念和使用,包括项目的自动构建、依赖管理、约定的目录结构、POM文件、坐标、仓库和生命周期。Maven简化了Java项目的构建过程,通过POM.xml文件管理依赖,并通过坐标确定资源。它还使用本地和远程仓库存储依赖项,提供了如编译、测试和打包等生命周期阶段。此外,文章还提到了Maven的安装步骤和如何使用Maven进行单元测试。

第一章 maven的介绍

1.1 软件开发中的阶段

1.2 maven能做什么

  • 项目的自动构建:编译,测试,打包,安装,部署等工作

  • 管理依赖:依赖 常见jar、项目驱动-mysql驱动

1.3 没有maven怎么管理依赖

  • 需要单独下载jar

  • 需要选择正确版本

  • 手工处理jar文件之间的依赖1.4 什么是maven

1.4 什么是maven

Java语法 Apache基金会的开源项目

自动化的构建工具

管理项目的依赖

1.5 maven中的概念

  1. POM
  2. 约定的目录结构
  3. 坐标
  4. 依赖管理
  5. 仓库管理
  6. 生命周期
  7. 插件和目标
  8. 继承
  9. 聚合

1.6 maven的安装

maven官网从中下载文件

安装

  1. 确定JAVA_HOME指定的jdk的安装目录,如果没有JAVA_HOME,需要在windows的环境变量中创建JAVA_HOME,它的值是jdk的安装目录
  2. 解压缩 apache-maven-3.3.9-bin.zip,吧解压后的文件放到一个目录中。目录的路径不要有中文,不要有空格
  3. 把maven安装目录中下的bin的路径添加到path中
  4. 测试maven安装。在命令行执行mvn –v
C:\Users\11206>mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: D:\apache-maven-3.3.9-bin\apache-maven-3.3.9\bin\..
Java version: 15.0.2, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-15.0.2
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

maven的其他安装方式

  1. 确定JAVA_HOME是否有效
  2. 在环境变量中创建一个M2_HOME,路径是安装目录
  3. 在path环境变量中加入%M2_HOME%\bin
  4. 测试Maven的安装,执行命令行mvn –v

第二章 maven的核心概念

2.1 约定的目录结构

maven项目使用大多数人遵循的目录结构,叫做约定的目录结构

一个maven项目是一个文件夹。比如项目叫做hello

Hello		项目文件夹
    \src					
    	\main				叫做主程序目录(完成项目功能的代码和配置文件)
    		\java   		源代码(包和相关的类定义)
    		\resources		配置文件
    	\test				放置测试程序代码的(开发人员自己写的测试代码)
    		\java			测试代码的(junit单元测试)
    		\resources		测试程序需要的配置文件
    \pom.xml				maven的配置文件,核心文件

maven可以独立使用:船检项目,编译代码,测试程序,打包,部署等等

maven和idea一起使用:通过idea借助maven,实现编码,测试,打包等等。

独立使用

  1. 建立上面所述文件夹
  2. 建立main中的java源代码
  3. 在pom.xml文件中cmd
  4. 执行 mvn compile(首次下载会从maven中央仓库下载maven的下载过程)
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 1 source file to D:\maven\mavenWork\Hello\target\classes  //打开的文件名
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:39 min
[INFO] Finished at: 2021-07-21T15:39:43+08:00
[INFO] Final Memory: 13M/40M
[INFO] ------------------------------------------------------------------------

<D:\maven\mavenWork\Hello\target\classes>在该文件夹下的命令行中输入

D:\maven\mavenWork\Hello\target\classes>java com.bjpowernode.HelloMaven

输出

D:\maven\mavenWork\Hello\target\classes>java com.bjpowernode.HelloMaven
HlloMaven addNumber
在main方法中,执行hello的方法=30

2.2 pom文件

project object model 项目对象模型,maven把项目当做模型处理,操作这个模型就是操作项目。

Maven通过pom.xml文件实现 项目的构建和依赖的管理。(pom.xml)

<?xml version="1.0" encoding="UTF-8"?>

<!-- projecet是跟标签 后面的约束文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <!-- pom的模型版本 4.0.0 -->
  <modelVersion>4.0.0</modelVersion>

    <!-- 坐标 -->
  <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
    
    
  <properties>
     <java.version>1.8</java.version>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  
</project>

2.3 坐标

坐标组成是groupid(x),artifactid(y),version(z)。坐标概念来自数学。

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

  <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
groupId:组织名称,代码。公司,团体或者单位的标识。这个值常使用公司域名的倒写。
		例如:学校的名称 www.jxcjdx.com  
		groupId:com.jxcjdx

		如果项目规模比较大,也可以是域名倒写+项目名称。
		例如:www.baidu.com,无人车:com.baidu.appollo
artifactId:项目名称,如果groupId中有项目,此时当前的值就是子项目名。项目名称是唯一的。
version:版本,项目的版本号,使用的数字,三位组成。例如:主版本号.次版本号.小版本号。例如:5.1.1
		注意:版本号中有-shapshot,表示快照,不是稳定的版本。
packaging:项目打包的类型,有jar,war,ear,pom等等,默认是jar

项目使用gav:

  1. 每个maven项目,都需要有一个自己的gav
  2. 管理依赖,需要使用其他的jar,需要用gav

搜索坐标的地址:https://mvnrepository.com/

2.4 依赖 dependency

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

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

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

格式:


<dependencies>
    
    <!-- 日志 -->
	<dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.14.1</version>
	</dependency>
    
    <!-- mysql驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.16</version>
	</dependency>
    
</dependencies>
maven使用gav作为表示,从互联网下载依赖的jar。下载到你的本机上。由maven管理项目使用的这些jar

2.5 仓库

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

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

仓库分类:

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

    默认路径,是你登录操作系统的账号的目录中\.m2\repository

    例如:

    C:\Users\11206\.m2\repository
    

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

    ​ 步骤:

    1. 创建一个目录,作为仓库用。目录中不要中文和空格。目录不要太深

      例如:D:\mavenJar

    2. 修改setting.xml文件,指定D:\mavenJar这个目录

    <localRepository>D:\mavenJar</localRepository>
    
    1. 提供的仓库资源 拷贝到D:\mavenJar中

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

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

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

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

单元测试(junit):

junit是一个单元测试的工具,在java中经常使用。

单元:在Java中指的是方法。一个方法就是一个单元,方法是测试的最小单元。

作用:使用junit去测试方法是否完成了要求,开发人员自测。

使用单元测试:

  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. 在测试类中的方法,可以单独执行,测试类也可以单独执行

    5. 在方法的上面加入@Test

命令:

  1. mvn clean:清理命令,作用删除以前生成的数据,删除target目录

更新中,让我们一起学习吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值