当前位置: 首页 > news >正文

网页后端开发(基础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,执行清理工作。

生命周期与插件:

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

相关文章:

  • 初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
  • 如何在 PyTorch 中自定义卷积核参数(亲测,已解决)
  • [免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • 设计模式-抽象工厂模式
  • C/Python/Go示例 | Socket Programing与RPC
  • 云原生时代的系统设计:架构转型的战略支点
  • GO语言---init函数
  • Go 语言底层(四) : 深入 Context 上下文
  • 鸿蒙 Stege模型 多模块应用
  • GO 基础语法和数据类型面试题及参考答案(下)
  • 解密鸿蒙系统的隐私护城河:从权限动态管控到生物数据加密的全链路防护
  • FreeRTOS任务基础知识
  • VLLM : RuntimeError: NCCL error: invalid usage
  • RT_Thread——线程管理(下)
  • 高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
  • window 显示驱动开发-如何查询视频处理功能(三)
  • 从零手写Java版本的LSM Tree (八):LSM Tree 主程序实现
  • 华为云Flexus+DeepSeek征文 | MaaS平台避坑指南:DeepSeek商用服务开通与成本控制
  • HTML5实现简洁的体育赛事网站源码
  • Nosql之Redis集群
  • 辽宁省网站制作公司排名/网站关键词优化价格
  • 廊坊哪里有做网站建设的/阿里指数官方网站
  • 做网站如何注意排版问题/如何让百度收录自己的网站信息
  • 自己建一个网站做电子商务/公众号开发
  • 搜索引擎搜索/黄冈网站推广优化找哪家
  • 长春做网站多少钱/网站建站流程