Maven工具基础学习

#文章目录

1.Maven简介

1.1 Maven是什么

1.2 Maven的作用

2.Maven环境搭建

3.Maven基础概念

3.1 仓库

3.2 坐标

3.3 仓库配置

4.Maven项目搭建

4.1 手动搭建maven项目

4.2 IDEA工具搭建maven项目

4.2.1 不使用原型创建项目

4.2.2 使用原型创建项目

5.Maven依赖管理

5.1 依赖配置与依赖传递

5.2 依赖范围

6.Maven生命周期与插件

6.1 生命周期

6.2 插件

1.Maven简介

1.1 Maven是什么

	Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
	Maven是用Java语言编写的。他管理的东西统统以面向对象的形式进行设计,最终他把一个项目看成一个对象,而这个对象叫做POM(project object 			       model),即项目对象模型:

在这里插入图片描述

1.2 Maven的作用

	Maven的作用我们可以分成三类:
	(1)项目构建:提供标准的,跨平台的自动化构建项目的方式;
	(2)依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突等问题;
	(3)统一开发结构:提供标准的,统一的项目开发结构。

在这里插入图片描述

2.Maven环境搭建

链接:https://blog.csdn.net/u013131716/article/details/100712817

3.Maven基础概念

3.1 仓库

仓库:用于存储资源,主要是各种jar包

仓库有三种,分别为:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库
中央仓库:maven团队自身维护的仓库,属于开源的;
私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源;
本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源。

简述私服的作用:
(1)保存具有版权的资源,包含购买或自主研发的jar;
(2)一定范围内共享资源,能做到仅对内不对外开放。

3.2 坐标

maven中的坐标用于描述仓库中资源的位置。

作用:使用唯一标识,唯一性定义资源位置,通过该标识可以将资源的识别与下载工作交由工具自动完成。

maven坐标的主要组成如下:
groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;com.xxx)
artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms)
version:定义当前资源的版本号

packaging:定义资源的打包方式,取值一般有如下三种
(1)jar:该资源打成jar包,默认是jar
(2)war:该资源打成war包
(3)pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构

如果要查询maven某一个资源的坐标,我们通常可以去maven的仓库进行查询,https://mvnrepository.com/,在该网站中可直接搜索想要的资源,然后就能得到该资源的坐标:
在这里插入图片描述

3.3 仓库配置

在maven的配置文件conf/settings.xml中可以找到它的说明:
在这里插入图片描述
镜像:mirrors
作用:加速下载
国内建议使用阿里云的镜像

<mirror>
    <id>nexus-aliyun</id>  
    <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>  
    <name>Nexus aliyun</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

本地仓库:
默认的本地仓库仓库位置在C:\Users\zs.m2\repository;(不建议使用,原因:开发项目所有的资源会比较多,文件使用空间较大)
可以自己来指定一个位置作为本地仓库的位置,这个指定同样是需要来修改maven的配置文件conf/settings.xml。

建立一个本地仓库:localRepository

<localRepository>D:\maven-repo</localRepository>

4.Maven项目搭建

4.1 手动搭建maven项目

我们先使用手动的方式来创建maven项目
(1)在D盘下创建目录mvnproject并进入该目录,作为我们的操作目
(2)创建我们的maven项目,创建一个目录project-java作为我们的项目文件夹,并进入到该目录
(3)创建java代码(源代码)所在目录,即创建src/main/java
(4)创建配置文件所在目录,即创建src/main/resources
(5)创建测试源代码所在目录,即创建src/test/java
(6)创建测试存放配置文件存放目录,即src/test/resources
(7)在src/main/java中创建一个包(注意在windos文件夹下就是创建目录)com/xxx,在该目录下创建Demo.java文件,作为演示所需java程序,内容如下:

package com.xxx;

public class Demo{
	public String say(String name){
		System.out.println("hello "+name);
		return "hello "+name;
	}
}

(8)在src/test/java中创建一个测试包(目录)com/xxx,在该包下创建测试程序DemoTest.java

package com.xxx;

import org.junit.*;
public class DemoTest{
	
	@Test
	public void testSay(){
		Demo d = new Demo();
		String ret = d.say("maven");
		Assert.assertEquals("hello maven",ret);
	}
	
}

(9)在project-java/src下创建pom.xml文件,编辑如下

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.xxx</groupId>
    <artifactId>project-java</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

</project>

通过前面的操作,我们已经搭建好了maven的项目结构,下面要通过maven来构建我们的项目
maven的构建命令以mvn开头,后面添加功能参数,可以一次性执行多个命令,用空格分离
mvn compile:编译
mvn clean:清理
mvn test:测试
mvn package:打包
mvn install:安装到本地仓库

下面我们来进行操作:
(1)在项目project-java所在的DOS命令窗口下执行mvn compile进行源码编译,当然首次执行需要先下载相关插件
在这里插入图片描述
编辑结果如下:
在这里插入图片描述
编译完成后在项目project-java下多了一个目录target,在这个目录下就存放的是maven编译好的一些东西
在这里插入图片描述
我们可以进入到target目录查看
在这里插入图片描述
其中生成的classes目录就是编译好的字节码文件
(2)当然如果我们想清理掉这些东西,我们只需执行mvn clean命令即可,清理掉后target目录也就消失了
(3)如果我们要执行测试包中的测试程序,我们只需执行mvn test命令即可
在这里插入图片描述
此时在看target目录会多一些东西
在这里插入图片描述
其中产生的test-classes就是测试代码的字节码文件,surefire-reports是它产生的测试报告
在这里插入图片描述
(4)使用mvn package命令进行打包,如下
在这里插入图片描述
在生成的target目录中可以看到打包的结果
在这里插入图片描述
当然,如果仔细看DOS窗口输出的我们会发现,mvn package命令的时候maven会把前面两个命令mvn compile,mvn test都执行一遍

(5)使用mvn install命令进行安装,将项目打好的包存入本地仓库
仔细查看输出会发现mvn install命令执行的时候也会将前面的命令都执行一遍
此时我们可以去本地仓库中查找,如何查找?这个很重要
maven是按照groupId/artifactId/version的结构在本地仓库进行存储在这里插入图片描述
前面我们是通过手动的方式创建的maven项目,相对来说比较的麻烦,maven本身也是这样觉得的,因此maven本身就给我们提供了相关的插件来帮助我们快速构建项目,当然这是一些命令:

在这里插入图片描述
这些命令不用记,因为实际操作的时候也用不着,因为实际开发的时候我们基本都是用过一些IDE工具来进行项目开发,这些IDE工具基本都集成了Maven,我们操作起来非常简单。

4.2 IDEA工具搭建maven项目

前面学习的基本都是通过命令来构建和管理项目,但是这在实际开发过程中基本不常用,常用的是通过相关IDE工具来进行项目的构建和管理,因此我们使用IDEA工具进行maven项目的搭建,需要注意的是:Maven和IDEA在版本上存在一些兼容性问题,因为要合理的选择Maven和IDEA的版本,本课程中提供安装maven-3.6.1版本是可用的.

4.2.1 不使用原型创建项目

(1)在IDEA中配置Maven
在这里插入图片描述
(2)创建maven工程
在这里插入图片描述
(3)填写本项目的坐标
在这里插入图片描述
(4)查看各目录颜色标记是否正确
在这里插入图片描述
(5)IDEA右侧有一个maven管理界面,可点开查看
在这里插入图片描述
(6)在项目的pom.xml文件中添加项目资源依赖


junit
junit
4.12

(7)创建源代码:com.xxx.Demo

package com.xxx;

/**

  • Created by XXX.
    */
    public class Demo{
    public String say(String name){
    System.out.println("hello "+name);
    return "hello "+name;
    }
    }

(8)创建测试代码:com.xxx.DemoTest

package com.xxx;

import org.junit.Assert;
import org.junit.Test;

/**

  • Created by XXX
    */
    public class DemoTest{

    @Test
    public void testSay(){
    Demo d = new Demo();
    String ret = d.say(“maven”);
    Assert.assertEquals(“hello maven”,ret);
    }

}
在这里插入图片描述
然后可以进行测试运行

运行的时候可以编辑运行模板:

在这里插入图片描述
在这里插入图片描述

4.2.2 使用原型创建项目

首先我们来看普通的java工程如何创建:
(1)创建maven项目的时候选择使用原型骨架
在这里插入图片描述
(2)创建完成后发现通过这种方式缺少一些目录,如下图
在这里插入图片描述
我们需要手动去补全目录,并且要对补全的目录进行标记,切记
在这里插入图片描述
然后我们在来看web工程如何创建:
(1)选择web对应的原型骨架

5.Maven依赖管理

5.1 依赖配置与依赖传递

5.2 依赖范围

6.Maven生命周期与插件

6.1 生命周期

6.2 插件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学习 Maven 需要有一定的 Java 编程基础,对于 Maven 的概念和使用方式也需要有一定的了解。另外,需要了解如何编写和管理项目依赖,以及如何使用 Maven 插件等。如果你之前没有接触过 Maven,建议先了解一些基本的概念和使用方法,例如 Maven 的生命周期、坐标、仓库等。 ### 回答2: 学习Maven需要一些基础知识。首先,需要了解Java编程语言和软件开发的基本概念和原理,以便理解Maven的作用和使用方式。其次,需要熟悉命令行操作以及基本的项目管理和构建知识,这有助于更好地使用Maven进行项目构建和管理。另外,了解项目构建管理工具的基本概念和工作原理也是必要的,这样能更好地理解Maven的工作方式和特点。最后,掌握XML的基本知识也是必要的,因为Maven项目的配置文件pom.xml采用XML格式进行编写和管理。当然,对于初学者来说,这些基础知识可以通过学习和实践逐步掌握,同时也可以通过查阅相关的文档和资料来加深理解。总之,学习Maven需要一些基础知识,但通过积极学习和实践,初学者也能逐步掌握并运用好这个项目构建管理工具。 ### 回答3: 学习Maven并不需要太多的基础知识,但有一些基本的编程和项目管理概念对于理解和使用Maven是很有帮助的。 首先,对Java编程语言有一定的了解是必要的,因为Maven主要用于构建和管理Java项目。了解Java基础语法、面向对象编程原理以及常用的Java开发工具,能更好地理解和使用Maven。 其次,对于项目管理的基本概念也是必备的。Maven是一个强大的项目管理工具,能够帮助我们自动化构建、测试、打包和部署项目。了解项目的生命周期、依赖管理、版本控制以及发布流程等概念,可以更好地理解和使用Maven的各种功能。 另外,了解一些常用的构建工具和持续集成工具也是有益的。Maven与其他构建工具(如Ant)和持续集成工具(如Jenkins)有很好的兼容性和集成性,对它们有一定的了解可以更好地搭配使用Maven进行项目构建和持续集成。 总结来说,学习Maven需要有一定的Java编程基础、项目管理概念以及对一些相关的构建和持续集成工具的了解,这样才能更好地理解和使用Maven的各种功能,提高项目管理和开发的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值