《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

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听