JavaWeb学习(七)

news/2025/3/5 22:23:41/文章来源:https://www.cnblogs.com/victoria6013/p/18753881

JavaWeb学习(七):Web后端开发 —— Maven

目录
  • JavaWeb学习(七):Web后端开发 —— Maven
    • 概念
    • 安装
    • IDEA 集成 Maven
    • 依赖管理

本文为个人学习记录,内容学习自 黑马程序员


概念

  • Maven 是 apache 的一个开源项目,是一款用于管理和构建 Java 项目的工具

  • 作用:

    • 依赖管理:方便快捷地管理项目依赖的资源(jar 包),避免版本冲突问题
    • 项目结构:提供标准、统一的项目结构
    • 项目构建:标准跨平台(Linux,Windows,MacOS)的自动化项目构建方式
  • 整体架构:

图7-1
  • 仓库介绍:
    • 概念:用于存储和管理 jar 包,分成本地仓库、中央仓库和远程仓库(私服)
      1. 本地仓库:本地计算机上的一个文件夹
      2. 中央仓库:由 Maven 团队维护,网址为 https://repo1.maven.org/maven2/
      3. 远程仓库:一般由公司团队搭建的私有仓库
    • 资源查找:
      1. 当在依赖管理模型中定义了一个资源时,会先在本地仓库中查找是否存在该资源,有则直接调用,否则去远程仓库中查找
      2. 如果在远程仓库中存在该资源,则将其下载到本地仓库中,以后直接在本地仓库调用即可,如果还是不存在该资源,则继续到中央仓库中查找
      3. 如果在中央仓库中存在该资源,则将其下载到远程仓库中和本地仓库中,以后直接在本地仓库调用即可
  • Maven 坐标:
    • 概念:Maven 坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置
    • 作用:使用坐标来定义项目或引入项目中需要的依赖
    • 组成:
      • groupId:定义当前 Maven 项目隶属组织名称,通常是域名反写,例如 com.baidu.www
      • artifactId:定义当前 Maven 项目名称,通常是模块名称
      • version:定义当前项目版本号

安装

  1. 从 Maven 官网下载压缩包 apache-maven-3.6.1-bin.zip,并解压到本地

  2. 配置本地仓库:修改 conf/settings.xml 中的 <localRepository> 标签,指定要作为本地仓库的文件夹

    <localRepository>D:\Maven\maven_repo</localRepository>
    
  3. 配置远程仓库:修改 conf/settings.xml 中的 <mirrors> 标签,指定远程仓库的信息

    <!-- 配置阿里云仓库 -->
    <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
    </mirror>
    
  4. 配置环境变量

    设置 MAVEN_HOME 为 Maven 的安装路径,并将其 bin 目录添加到 PATH 环境变量中

    图7-2 图7-3

IDEA 集成 Maven

  • 配置 Maven 环境

    • 单个项目配置 Maven 环境
    图7-4 图7-5 图7-6
    • 全局项目配置 Maven 环境

      关闭所有的项目,在 IDEA 起始页选择配置全局设置,之后的步骤和配置单个项目时完全一致

      图7-7
  • 创建 Maven 项目

    1. 在 IDEA 起始页新建一个空项目,自定义项目名

      图7-8
    2. 右键新项目,选择新建模块(New Module)

      图7-9
  • 导入 Maven 项目

    图7-10
  • Maven 项目结构

    图7-11

依赖管理

  • 依赖配置

    • 依赖:指当前项目运行所需要的 jar 包,一个项目可以引入多个依赖

    • 步骤:1. 在 pom.xml 文件中添加依赖项 2. 对 pom.xml 进行修改后会浮现出刷新按钮,点击该按钮后才会进行更新

    • 说明:

      • <dependencies> 标签内由多个 <dependency> 标签组成,而 <dependency> 标签内用于配置单个依赖
      • 如果引入的依赖在本地仓库中不存在,将会连接远程仓库/中央仓库进行下载
      • 可以在 https://mvnrepository.com/ 中查询依赖信息
      图7-12
  • 依赖传递

    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系

    • 间接依赖:被依赖的资源如果依赖其他资源,则当前项目间接依赖其他资源

    • 传递性:Maven 中的依赖具有传递性,即项目指定了直接依赖后,会自动建立起间接依赖

    • 排除依赖:如果不需要用到某些间接依赖,可以主动断开依赖的资源

      <dependencies><dependency><!-- 指定直接依赖 --><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version><!-- 指定排除的依赖 --><exclusions><exclusion><groupId>junit</groupId><artifactId>junit</artifactId></exclusion></exclusions></dependency>
      </dependencies>
      
  • 依赖范围

    • 依赖的 jar 包,默认情况下可以在任何地方使用,包括主程序范围(main 文件夹内),测试程序范围(test 文件夹内),在打包时也可以包含进去(package 指令范围内)

    • 可以通过 <scope> 标签设置依赖的作用范围

      scope值 主程序 测试程序 打包(运行) 范例
      complie(默认) Y Y Y log4j
      test N Y N junit
      provided Y Y N servlet-api
      runtime N Y Y jdbc驱动
      <dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version><!-- 设置scope值为test --><scope>test</scope></dependency>
      </dependencies>
      
  • 生命周期

    • 作用:对所有的 Maven 项目构建过程进行抽象和统一

    • Maven 中有 3 套相互独立的生命周期,每套生命周期包含一些阶段,阶段按序执行,后面的阶段依赖于前面的阶段

      • clean:清理工作
      • default:核心工作,如:编译、测试、打包、安装、部署等
      • site:生成报告、发布站点等
      图7-13
    • 生命周期阶段:最常用的有五个阶段:clean、complie、test、package、install

      生命周期阶段 说明 体现
      clean 移除上一次构建生成的文件 清除项目下的 target 文件夹
      compile 编译项目源代码,生成字节码文件 在 target/classes 文件夹下生成字节码文件
      test 使用合适的单元测试框架运行测试 在 target 文件夹下生成测试相关文件
      package 将编译后的文件打包 在 target 文件夹下生成项目的 jar 文件
      install 安装项目到本地仓库 将 target 文件夹下项目的 jar 文件添加到本地仓库中
    • 执行指定生命周期

      • 方法一:在命令行中,通过命令执行

      • 方法二:在 IDEA 中,通过右侧的 Maven 工具栏,双击需要运行的阶段

        图7-14

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

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

相关文章

浙江大学|第二弹来啦,65页《DeepSeek模型解读》,DeepSeek起源、应用、部署到未来展望全解读 | PDF免费下载

《DeepSeek模型解读》是由浙江大学MBA领学团队撰写的一份技术解析文档,系统介绍了国产大模型DeepSeek的核心特性与应用前景。**该文档以行业变革为背景,结合技术细节与场景案例,为读者展现了DeepSeek在人工智能领域的突破性进展。**《DeepSeek模型解读》是由浙江大学MBA领学…

浙江大学|153页《DeepSeek行业应用案例集》也来啦,DeepSeek居然已渗透到千行百业如此之深 | PDF免费下载

《DeepSeek行业应用案例集:解锁智能变革密码》由浙江大学信息技术中心发布,全面展示了DeepSeek人工智能技术在农业、制造业、金融、医疗、教育等领域的创新实践。本案例集通过40多个行业应用实例,揭示了DeepSeek如何以数据驱动和智能化解决方案推动行业转型升级,为从业者提…

2020-PTA总决赛-L2-3 完全二叉树的层序遍历(深搜+一维数组模拟二叉树)

DFS建树,一位数组模拟二叉树一维数组模拟二叉树:leftNode = root * 2 rightNode = root * 2 + 1 leftNode表示左孩子在一维数组中的下标(一维数组下标从1开始) rightNode表示右孩子在一维数组中的下标 root表示根节点下标 比如完全二叉树层序遍历为10 2 5 6 8 7 3 那么用一…

Puppeter 如何链接控制 Electron 创建的窗口

大家好,我是一名,跨境行业 saas 软件开发的前端程序员,阿毛 这个我的个人网站 最近想用 Electron 做一个爬虫,想到用 Puppeter 来控制 Electron 创建的窗口执行爬取任务。 网上找了很多方法都不好用, 最后发现一个库可以链接 Electron 和 Puppeter , 这里分享一下puppetee…

软件工程日报03

今天练习了springboot技术,写了一个用户注册的功能(只写了后端代码) 首先创建了boot项目,pom文件继承了spring-boot-starter-parent依赖管理,大部分不需要自己配置 之后再yml文件中写数据库的配置然后创建项目结构,和之前类似,实现注册功能。 主要步骤就是定义实现类Use…

Ubuntu 平台上火焰图的生成和分析

火焰图的生成和分析 Ubuntu 平台的火焰图生成 在 Ubuntu 平台上,安装 FlameGraph 到 FlameGraph 目录下。运行想要生成火焰图的进程 top 获取需要生成火焰图的进程号 按照下面的脚本输入命令#!/bin/bash echo "please input pid" read processid echo "your pr…

【硬件测试】基于FPGA的4FSK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

1.算法仿真效果 本文是之前写的文章:《基于FPGA的4FSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR》的硬件测试版本。在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(完整代码运行后…

智能客服支持助手

customer_support_assistant https://github.com/jiangnanboy/customer_support_assistant 1.简介 customer_support_assistant是智能客服支持助手项目,利用LLM对Query的理解,去调用相应函数,实现智能客服功能。 本项目具体的功能为根据用户的查询,利用deepseek去理解查询并…

UPFC统一潮流控制器的simulink建模与仿真

1.课题概述UPFC统一潮流控制器的simulink建模与仿真。能够在不增加输电线路物理容量的情况下,显著提高电力系统的传输能力和稳定性。UPFC能够同时控制输电线路的有功功率、无功功率以及节点电压,具有调节系统潮流分布、提高系统稳定性和改善电压质量等重要作用。2.系统仿真结…

人员离岗预警系统为人员值班保驾护航

人员离岗监测预警系统设备。系统设备实现对机场值班室工作人员进行24小时离岗监测预警,当值班工作人员离开超过规定时间,系统设备监测到及时推送告警信息到监控室管理平台和手机端通知管理人员及时处理,将事后取证变为事前预警。人员离岗监测预警系统设备。系统设备实现对机…

OpenVX节点执行独立性

节点执行独立性 在如图2-5所示例中,客户端根据输入图像、梯度幅度和梯度相位。OpenVX并不要求并行运行,但可以由OpenVX供应商实现。图2-5 具有一些独立节点的简单图形。 构造这种图形的代码,如下所示。 vx_context context = vxCreateContext(); vx_image images[] = {vxCre…