网页后端开发(基础1--maven)

maven的作用:

Maven是一款管理和构建Java项目的工具。


1.依赖管理

方便快捷的管理项目依赖的资源(jar包)

        不用手动下载jar包,只需要中maven中引用,maven会查找本地仓库。若本地仓库没有,会直接向远端仓库发送下载请求,自动下载jar包。

Maven 仓库是存放构件的地方,主要分为两大类:本地仓库远程仓库

本地仓库

本地仓库是存放在用户计算机上的一个目录,Maven 在查找构件时首先会在本地仓库中查找。如果本地仓库中存在所需的构件,Maven 会直接使用它们。默认情况下,本地仓库位于用户目录下的 .m2/repository/ 目录中1。

远程仓库

如果本地仓库中没有找到所需的构件,Maven 会去远程仓库查找。远程仓库又可以分为三种:

  1. 中央仓库:这是 Maven 自带的远程仓库,包含了绝大部分开源的构件。当本地仓库没有所需的构件时,Maven 会尝试从中央仓库下载1。

  2. 私服:这是一个特殊的远程仓库,通常架设在局域网内,用来代理所有的外部远程仓库。私服可以节省带宽,提高下载效率,并且便于部署第三方构件1。

  3. 其他公共仓库:除了中央仓库和私服外,还有很多其他公开的远程仓库,如 java.net Maven 库和 JBoss Maven 库1。

        maven中引用示例

<!--引入依赖--><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.4</version></dependency></dependencies>

        若本地仓库没有,则会直接从远端仓库下载 org.springframework的jar包。

2.项目构建:

标准的跨平台的自动化项目构建方式(Linux,Window,MacOS)

        在IDEA中创建maven文件,会自动化生成固定格式,并且附带生存期和插件。

3.统一项目结构:

提供标准,统一的项目结构

        Java主流编译软件:Eclipse,MyEclipse,IntelliJ IDEA

        这些软件生成的Java文件格式不同,无法相互导入。

        使用maven即可解决,maven提供统一的标准,不同编译软件之间可以相互使用。

Maven核心

        Maven概述:Maven是项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一段描述信息来管理项目的构建。

        官网:https://mvnrepository.com/

        Maven结构:pom.xml--->三部分:项目对象模型(POM),依赖管理模型,构建生命周期/阶段。

        项目对象模型(POM)

<?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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.cyyWeb</groupId><artifactId>maven-project01</artifactId><version>1.0-SNAPSHOT</version><!--SNAPSHOT是开发中的版本--><!--Release是正式版本--><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
</project>

pom由 

    <groupId>org.cyyWeb</groupId>
    <artifactId>maven-project01</artifactId>
    <version>1.0-SNAPSHOT</version>
 

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

组成。

    <groupId>org.cyyWeb</groupId>
    <artifactId>maven-project01</artifactId>
    <version>1.0-SNAPSHOT</version>

    是项目的基本信息。其中

groupId是当前Maven项目隶属的组织名称,通常为域名反写。

artifactId是当前Maven项目的名称。

version用来定义当前的版本号。(SNAPSHOT是开发中的版本,Release是正式版本)

     <properties>.........</properties>表示JDK的信息,包含JDK的版本。此实验使用JDK17进行实验。

        依赖管理模型

<!--引入依赖--><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.4</version></dependency></dependencies>

    <dependencies>
        <dependency>
            <groupId>..........</groupId>
            <artifactId>.........</artifactId>
            <version>.......</version>
        </dependency>
    </dependencies>

用来引入依赖,即导入jar包。本地仓库没有时,自动访问远端仓库进行下载。

        构建生命周期/阶段

        生命周期与插件紧密联系,运行什么生命周期,调用相对应的插件。

Maven的依赖管理

依赖配置

配置

1.编写<dependencies>  </dependencies>标签

2.在<dependencies>  </dependencies>中,使用<dependency>  </dependency>引入坐标

3.定义坐标的<groupId>....</groupId>,<artifactId>....</artifactId>,<version>..</version>

       groupId是引入依赖的组织名称。

       artifactId是引入依赖的名称。

       version用来定义引入依赖的版本号。

4.点击刷新,引入最新加入的坐标。

 若不知道依赖的坐标,可以访问官网查找。

官网:https://mvnrepository.com/

排除依赖

排除依赖:指主动断开依赖的资源,被排除的资源无需指定版本。

在<dependency>  </dependency>中使用<exclusions>..</exclusions>排除依赖。

<?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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.cyyWeb</groupId><artifactId>maven-project01</artifactId><version>1.0-SNAPSHOT</version><!--SNAPSHOT是开发中的版本--><!--Release是正式版本--><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--引入依赖--><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.4</version><!--排除依赖--><exclusions><exclusion><groupId>io.micrometer</groupId><artifactId>micrometer-observation</artifactId></exclusion></exclusions></dependency></dependencies></project>

注意事项

1.一旦依赖配置变更了,需要重新加载

2.引入的依赖本地仓库不存在时,需要联网在远端仓库进行下载。

生命周期

Maven的生命周期是为了对所有Maven项目构建过程进行抽象和统一。

Maven有三套相互独立的生命周期:

clean:清理工作。

default:核心工作,如:编译,测试,打包,安装,部署等。

site:生成报告

每套生命周期都包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段。

在同一套生命周期中,当后面阶段运行时,前面的阶段也会运行。

例如:当运行install时,dsfault要从validate运行至install

执行生命周期的两种方式:

1.在idea中,右侧的maven工具栏,选择对应的生命周期,双击运行。

2.在命令行中,通过命令执行。

在项目文件夹中,在上方文件目录中输入cmd,回车。

在命令行中输入mvn clean,执行清理工作。

生命周期与插件:

在执行生命周期时,其本质是调用了对应的插件,完成工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

认识电子元器件---高低边驱动

目录 一、基本概念 二、关键参数对比 三、工作原理 &#xff08;1&#xff09;高边驱动 &#xff08;2&#xff09;低边驱动 四、典型的应用场景 五、如何选择 一、基本概念 可以理解成&#xff1a;高低边驱动是MOS/IGBT的一种应用方式 高低边驱动是电路拓扑概念&#…

JavaScript 标签加载

目录 JavaScript 标签加载script 标签的 async 和 defer 属性&#xff0c;分别代表什么&#xff0c;有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …

C/CPP 结构体、联合体、位段内存计算 指南

C/CPP 结构体、联合体、位段内存计算 指南 在C语言中&#xff0c;结构体、联合体和位段是对数据的高级抽象&#xff0c;它们可以让程序员以更易于理解的方式来操作复杂的数据结构。然而&#xff0c;这些结构在内存中的布局可能并不如它们的语法结构那样直观&#xff0c;特别是当…

ASR(语音识别)语音/字幕标注 通过via(via_subtitle_annotator)

文章目录 1 VIA 官网资料2 语音/字幕标注3 键盘快捷键常规当一个时间片段被选中时图像或视频帧中的空间区域 1 VIA 官网资料 VIA官网&#xff1a;https://www.robots.ox.ac.uk/~vgg/software/via/ VIA官网标注示例&#xff1a;https://www.robots.ox.ac.uk/~vgg/software/via/…

mq安装新版-3.13.7的安装

一、下载包&#xff0c;上传到服务器 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-generic-unix-3.13.7.tar.xz 二、 erlang直接安装 rpm -ivh erlang-26.2.4-1.el8.x86_64.rpm不需要配置环境变量&#xff0c;直接就安装了。 erl…

高通平台PCIE EP模式log丢失问题

高通平台PCIE EP模式log丢失问题 1 问题背景2 问题分析2.1 对比USB2.1.1 Logtool优化2.1.2 Device mhi与fs对比2.2 优化方案2.2.1 Diag系统优化2.2.2 Host mhi优化3 最终成果1 问题背景 高通5G模组如SDX55\SDX62\SDX65\SDX72\SDX75等支持pcie ep模式。会通过pcie与host(如MT7…

Python应用输入输出函数

大家好!在 Python 编程中&#xff0c;输入输出函数是与用户进行交互的桥梁。通过输入函数&#xff0c;我们可以获取用户的输入数据&#xff1b;通过输出函数&#xff0c;我们可以向用户展示程序的运行结果。对于初学者来说&#xff0c;掌握基本的输入输出操作是编程入门的重要一…

如何使用 Ansible 在 Ubuntu 24.04 上安装和设置 LNMP

在当今世界,自动化是有效管理和部署 Web 应用程序的关键。Ansible 是一个强大的自动化工具,它是一款开源软件配置、配置管理和应用程序部署工具。本文将指导您使用 Ansible 在 Ubuntu 服务器上安装 LNMP 堆栈(Linux、Nginx、MySQL、PHP)。 先决条件 为了执行本指南中讨论的…

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…

RK3288项目(四)--linux内核之V4L2框架及ov9281驱动分析(中)

目录 一、引言 二、V4L2其他部件驱动分析 ------>2.1、mipi-dphy ------------>2.1.1、dts ------------>2.1.2、driver ------------>2.1.3、notifier机制 ------------>2.1.4、异步回调 ------------>2.1.5、V4L2 subdev ------>2.2、mipi-csi…

容器-使用slim减少10x+大模型镜像

slim&#xff08;原docker-slim&#xff09;是一个开源工具&#xff0c;全称SlimToolkit&#xff08;https://github.com/slimtoolkit/slim&#xff09;&#xff0c;用于基于已有的Docker镜像减小镜像的大小&#xff0c;同时尽可能保留容器的功能。它通过分析镜像的运行环境和应…

Golang基础学习

​​​​​​​​​​ 初见golang语法 go项目路径 cd $GOPATH //ls可以看到有bin,pkg,src三个文件 cd src/ mkdir GolangStudy cd GolangStudy mkdir firstGolanggo程序执行&#xff1a; go run hello.go//如果想分两步执行&#xff1a; go build hello.go ./hello导入包的…

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…

电路图识图基础知识-远程/本地启停电动机(二十一)

在实际的生产中&#xff0c;经常会需要电动机的控制可以就地控制和远方控制&#xff0c;在集中的控制室中&#xff0c;远 方控制电动机的启动、停止。在就地设置启动、停止按钮或是紧急停车按钮&#xff0c;以满足生产的需要。 1.远程、多点及连锁控制电动机电路 2.元器件配置…

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…

__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.

这个警告表明您在使用Vue的esm-bundler构建版本时&#xff0c;未明确定义编译时特性标志。以下是详细解释和解决方案&#xff1a; ‌问题原因‌&#xff1a; 该标志是Vue 3.4引入的编译时特性标志&#xff0c;用于控制生产环境下SSR水合不匹配错误的详细报告1使用esm-bundler…

Vue.js教学第二十一章:vue实战项目二,个人博客搭建

基于 Vue 的个人博客网站搭建 摘要: 随着前端技术的不断发展,Vue 作为一种轻量级、高效的前端框架,为个人博客网站的搭建提供了极大的便利。本文详细介绍了基于 Vue 搭建个人博客网站的全过程,包括项目背景、技术选型、项目架构设计、功能模块实现、性能优化与测试等方面。…

32位寻址与64位寻址

32位寻址与64位寻址 32位寻址是什么&#xff1f; 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元&#xff08;地址&#xff09;&#xff0c;其核心含义与能力如下&#xff1a; 1. 核心定义 地址位宽&#xff1a;CPU或内存控制器用32位…

如何在Spring Boot中使用注解动态切换实现

还在用冗长的if-else或switch语句管理多个服务实现? 相信不少Spring Boot开发者都遇到过这样的场景:需要根据不同条件动态选择不同的服务实现。 如果告诉你可以完全摆脱条件判断,让Spring自动选择合适的实现——只需要一个注解,你是否感兴趣? 本文将详细介绍这种优雅的…