《JavaEE进阶》----2.<Spring前传:Maven项目管理工具>

2024-08-28 01:20

本文主要是介绍《JavaEE进阶》----2.<Spring前传:Maven项目管理工具>,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇博客讲解我们在使用Spring框架时所要用到的Maven这个项目管理工具
它可以更方便的管理我们的项目,比如通过

1.常用的Maven命令来进行编译、测试、打包、清理包等等,不仅如此,

2.Maven还可以对依赖进行管理,方便我们添加依赖、管理依赖。让我们快速获取到我们想要的依赖,而不用自己添加依赖的jar包。

一、Maven项目管理工具

1.1什么是Maven

Maven是⼀个项目管理⼯具。基于POM(Project Object Model,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项⽬管理工具软件。

Maven我的理解

大白话: Maven是⼀个项目管理⼯具, 通过pom.xml文件的配置获取jar包,而不用手动去添加jar包

注:maven是可以单独使用的,跟idea没关系,只是idea把maven集成进来了

1.2 为什么要学Maven

⼀句话: 简单,方便,

提高我们的开发效率,减少我们的开发Bug.Maven提供的功能非常多

Maven我们主要是了解以下两个方面:
1. 项目构建
2. 管理依赖

1.3项⽬构建

创建maven项目

如下图在构建系统中选择Maven

1.4 Maven命令

在右边我们可以找到一个有M的图标,那就是Maven。相当于Maven的管理工具。

Maven的一些命令也在里面

常用命令 

clean  清理class文件。可以把包清理掉。(通常是target目录。)

package   打包。点击之后会进行打jar包,此时idea文件目录中会出现target文件。包就在这里面。当出现BUILD SUCCESS说明打包成功。

install   编译、测试、打包,并将构建好的jar/war包安装到本地 Maven 仓库。工作中常用来发布包到本地。

deploy 编译、测试、打包,并将构建的工件部署到远程 Maven 仓库。工作中常用来发布包到远程Maven仓库。

其他命令

compile:编译项目的源代码,将.java文件编译为.class文件,在开发过程中检查代码的编译是否成功,或在构建前进行编译。

test:运行项目中的单元测试。验证代码的正确性,确保新代码没有破坏现有功能。

validate:当你刚刚创建或修改了pom.xml时,检查其配置是否有效。

site:生成项目的站点文档,包括项目的各种报告(如 Javadoc、测试报告、依赖关系等)。当你需要生成项目文档以供查看或发布时会用到

verify:执行项目的集成测试,验证项目是否已准备好进行发布。它包括编译、测试等步骤,并在这之后运行可能存在的集成测试。当你需要确保项目中的代码不仅通过了单元测试,还通过了集成测试,并符合发布标准时使用。

1.5依赖管理

上面说到,Maven是⼀个项目管理⼯具,

通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
获取的jar包,其实就是依赖.
pom.xml就是maven的配置⽂件,用以描述项⽬的各种信息

如下图,在文件目录中找到pom.xml文件

依赖配置
依赖:指当前项⽬运⾏所需要的jar包.


添加依赖

如果大家了解了前端,那么相当于我们在<dependencies>标签中添加依赖的坐标。,如下。
<dependencies>
这里面放置依赖的坐标,可以为多个。
</dependencies>

通过

<dependencies>

              <dependency> 

             </dependency>

</dependencies>

进行添加依赖

示例(我们添加8.0.30版本的mysql依赖):

<dependency>

        < groupId>mysql<groupId>

        <artifactId>mysql-connector-java<artifactId>

        <version>8.0.30<version>

<dependency>

代码编写好之后,需要点击刷新按钮就可以完成添加依赖,

此时我们就可以看见旁边文件目录中多了些jar包

例如:我们添加依赖如下

<dependencies>

        <dependency> 

                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.30</version>

        </dependency>

</dependencies>

 再点击这个刷新按钮,如果没有我们点击旁边的m。

此时如上图,就出现了刷新的按钮。

第二行,第一个刷新按钮也是可以进行刷新的。

我们点击刷新之后:我们在左边外部库中观察依赖有没有进来

 

我们发现,在外部库中,除了最开始有的<1.8>

还多了两个有关于Maven的。

其中第一个是mysql的依赖。是mysql还需要依赖的别的jar包

第二个则是我们添加的

我们发现Maven依赖不仅把当前的jar包依赖进行,还把这个jar包依赖的jar包依赖进来到项目之中

Maven对我们进行的依赖管理,会把当前依赖的依赖也会引入到当前项目中。

多余的那个是因为mysql应用的那个jar包里面的东西,因此也会被依赖到项目之中。

查看依赖关系

此时 我们需要用到一个插件来进行查看依赖关系

安装Maven Helper插件        

安装插件

主菜单>设置>插件

安装完之后pom文件中会出现一个插件框

文本旁边的选项,就是进行依赖分析的。点击之后,我们就会看到依赖关系 

 

上面有多种模式来展示依赖关系

1.Conflicts冲突

2.所有依赖以列表形式显示

3.所有依赖以树的结构显示

4.显示组ID

5.显示依赖大小

依赖代码分析

<dependencies>

        <dependency> 

                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.30</version>

        </dependency>

</dependencies>

 整个描述我们称之为依赖的坐标,我们可以确定jar包固定的位置

是基于Maven仓库的坐标

Maven仓库地址:

仓库的分类:

分为

本地仓库:随着使用时间越来越长,下载jar包越来越多占用硬盘空间越来越大

远程仓库

其中

远程仓库又分为中央仓库和私有仓库

本地仓库地址:

远程仓库地址:

1.仓库地址:中央仓库地址https://repo1.maven.org/maven2/

2.查询界面地址: 查询界面https://mvnrepository.com/

这两个有可能不一致, 以仓库地址为准。查询界面会有一定的滞后性。

仓库地址在国外。

 3.国内源:将国外的仓库地址搬到国内.我们可以自己设置

4.私服:中央仓库和国内源都是公开的,所有人都可以看到,企业开发时,一些项目代码具有一定的私密性。不会公开,因此企业会建立自己的私服,访问需要账号密码。

1.6刷新依赖来源

我们自己引入依赖:

本地仓库   >   本地仓库去中央仓库拿,下载后从本地仓库拿。

本地仓库最开始的时候是空的。最终我们所使用到的代码都可以从本地仓库拿

私服:

先从本地仓库拿,若没有去私服,私服也没有去中央仓库拿。返回到私服,私服再返回到本地。

一个jar包只下载一次。本地没有则去私服拿,私服没有才会去中央仓库拿 

中央仓库也包含国内源。 

1.7设置国内源(访问会更快)

仅限于在学习阶段,公司中不用国内源,而是直接用私服。若在公司去找同事要setting文件就好了。

setting文件用来配置Maven。

因为公司可能不让用Maven的阿里云镜像地址等等。。

这样setting文件里会包含公司的私服账号地址密码等等信息

在设置中,找到构建、执行、部署。中构建工具中有Maven项。用户设置文件中有setting文件。

如下图

在其中找到用户设置文件。打开文件,里面有一个settings.xml 

如何设置国内源? 

1.修改settings.xml文件

2.如果没有settings.xml文件,则找一个。

Maven仓库默认在国外https://mvnrepository.com/,国内使⽤时会⽐较慢,我们可以更换为阿⾥云的仓库
也可以选择别的仓库,参考:Maven镜像地址⼤全


打开settings.xml,在mirrors节点上,添加内容如下:
<mirror>
        <id>aliyunmaven</id>
        <mirrorOf>central</mirrorOf>
        <name>阿⾥云公共仓库</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

settting文件在我的桌面中的Maven配置文件中哦

注意:所设置的目录,如项目路径,等不要有中文路径!!!!

目录如果包含中文,如何修改?

1.创建你期望放的目录

2.进入当前Maven配置目录到.m2

3.复制.m2中的文件到你创建的目录

4.修改idea配置

  • 修改Maven仓库目录

修改用户设置文件目录和本地仓库目录。并且打上两个重写的√

注意分别指定settings.xml文件和repository

  • 新项目设置

选择文件->新建项目设置->新项目的设置->构建、执行、部署->构建工具->Maven

再把相应目录重写改一下。

这篇关于《JavaEE进阶》----2.<Spring前传:Maven项目管理工具>的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113325

相关文章

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte