【黑马程序员】Maven 进阶

文章目录

  • 前言
  • 一、分模块开发与设计
    • 1. 分模块开发意义
    • 2. 分模块开发(模块拆分)
      • 2.1 创建 Maven 模块
      • 2.2 书写模块代码
      • 2.3 通过 Maven 指令安装模块到本地仓库(install 指令)
  • 二、依赖管理
    • 1. 依赖传递
      • 1.1 依赖传递冲突问题
    • 2. 可选依赖(不透明)
    • 3. 排除依赖(不需要)
  • 三、聚合与继承
    • 1. 聚合
      • 1.1 聚合工程开发
        • ① 创建 Maven 模块,设置打包类型为 pom
        • ② 设置当前聚合工程所包括的子模块名称
    • 2. 继承
      • 2.1 继承关系开发
        • ① 创建 Maven 模块,设置打包类型为 pom
        • ② 在父工程的 pom 文件中配置依赖关系
        • ③ 配置子工程中可选的依赖关系
        • ④ 在子工程中配置当前工程所继承的父工程
        • ⑤ 在子工程中配置使用父工程中可选依赖的坐标
    • 3. 聚合与继承的区别
  • 四、属性管理
    • 1. 属性
      • 1.1 属性配置与使用
        • ① 定义属性
        • ② 引用属性
      • 1.2 资源文件引用属性
        • ① 定义属性
        • ② 配置文件中引用属性
        • ③ 开启资源属性目录所加载属性的过滤器
        • ④ 配置 maven 打 jar 包时,忽略 web.xml 检查
      • 1.3 其他属性(了解)
    • 2 版本管理
  • 五、多环境配置与应用
    • 1. 多环境开发
      • 1.1 多环境的配置
        • ① 定义多环境
        • ② 使用多环境
    • 2. 跳过测试
      • 2.1 指令跳过
      • 2.2 细粒度控制跳过
  • 六、私服
    • 1. 私服简介
      • 1.1 Nexus 安装与启动
    • 2. 私服仓库分类
      • 2.1 私服仓库的分类
    • 3. 资源上传与下载
      • 3.1 本地仓库访问私服权限设置
        • ① 配置位置(server)
        • ② 配置位置(mirror)
        • ③ 配置 nexus 仓库
      • 3.2 工程上传到私服服务器设置
        • ①配置位置(工程 pom 文件中)
        • ②配置位置(nexus 服务器页面设置)
  • 总结


前言

跟着B站的黑马程序员学习 Maven 进阶
课程传送门:黑马程序员——Maven进阶


一、分模块开发与设计

1. 分模块开发意义

在这里插入图片描述

2. 分模块开发(模块拆分)

2.1 创建 Maven 模块

在这里插入图片描述

2.2 书写模块代码

在这里插入图片描述

2.3 通过 Maven 指令安装模块到本地仓库(install 指令)

在这里插入图片描述

二、依赖管理

在这里插入图片描述

1. 依赖传递

在这里插入图片描述

1.1 依赖传递冲突问题

在这里插入图片描述

2. 可选依赖(不透明)

在这里插入图片描述

3. 排除依赖(不需要)

在这里插入图片描述

三、聚合与继承

1. 聚合

在这里插入图片描述

1.1 聚合工程开发

① 创建 Maven 模块,设置打包类型为 pom

在这里插入图片描述

② 设置当前聚合工程所包括的子模块名称

在这里插入图片描述

2. 继承

在这里插入图片描述

2.1 继承关系开发

① 创建 Maven 模块,设置打包类型为 pom

在这里插入图片描述

② 在父工程的 pom 文件中配置依赖关系

在这里插入图片描述

③ 配置子工程中可选的依赖关系

在这里插入图片描述

④ 在子工程中配置当前工程所继承的父工程

在这里插入图片描述

⑤ 在子工程中配置使用父工程中可选依赖的坐标

在这里插入图片描述

3. 聚合与继承的区别

  • 作用:
    ① 聚合用于快速构建项目
    ② 继承用于快速配置

  • 相同点:
    ① 聚合与继承的 pom.xml 文件打包方式均为 pom,可以将两种关系制作到同一个 pom 文件中
    ② 聚合和继承均属于设计型模式,并无实际的模块内容

  • 不同点:
    ① 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
    ② 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

四、属性管理

在这里插入图片描述

1. 属性

1.1 属性配置与使用

① 定义属性

在这里插入图片描述

② 引用属性

在这里插入图片描述

1.2 资源文件引用属性

① 定义属性

在这里插入图片描述

② 配置文件中引用属性

在这里插入图片描述

③ 开启资源属性目录所加载属性的过滤器

在这里插入图片描述

④ 配置 maven 打 jar 包时,忽略 web.xml 检查

在这里插入图片描述

1.3 其他属性(了解)

在这里插入图片描述

2 版本管理

在这里插入图片描述
在这里插入图片描述

五、多环境配置与应用

1. 多环境开发

在这里插入图片描述

1.1 多环境的配置

① 定义多环境

在这里插入图片描述

② 使用多环境

在这里插入图片描述

2. 跳过测试

  • 应用场景:
    ① 功能更新中并且没有开发完毕
    ② 快速打包
    ③ …

  • 实现跳过测试:
    ① 按钮(跳过所有)
    ② 指令跳过
    ③ 细粒度控制跳过

2.1 指令跳过

在这里插入图片描述

2.2 细粒度控制跳过

在这里插入图片描述

六、私服

在这里插入图片描述

1. 私服简介

  • 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题。

  • Nexus
    ① Sonatype 公司的一款 maven 私服产品
    ② 下载地址:点击前往

1.1 Nexus 安装与启动

在这里插入图片描述

2. 私服仓库分类

在这里插入图片描述

2.1 私服仓库的分类

在这里插入图片描述

3. 资源上传与下载

在这里插入图片描述

3.1 本地仓库访问私服权限设置

① 配置位置(server)

在这里插入图片描述

② 配置位置(mirror)

在这里插入图片描述

③ 配置 nexus 仓库

在这里插入图片描述

3.2 工程上传到私服服务器设置

①配置位置(工程 pom 文件中)

在这里插入图片描述

②配置位置(nexus 服务器页面设置)

在这里插入图片描述


总结

以上就是本章要讲的内容,本文仅仅简单复述了老师讲课的文本内容,内容有误麻烦联系。

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

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

相关文章

iOS NSKeyedUnarchiver归档和读取

使用NSKeyedUnarchiver归档数据到本地&#xff0c;很多时候保存的并不是基础数据类型&#xff0c;更多是自己定义的Model。有时会碰到归档或者读取的内容跟自己保存的数据类型不匹配。 现在按照思路一步一步解决&#xff1a; 1.先保存文件 保存的数据的类型 #import <Fou…

Rust编程基础核心之所有权(上)

1.什么是所有权? Rust 的核心功能&#xff08;之一&#xff09;是 所有权&#xff08;ownership&#xff09;。虽然该功能很容易解释&#xff0c;但它对语言的其他部分有着深刻的影响。 所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制&#x…

【Linux】第十二站:进程

文章目录 1.windows和linux中的进程2.先描述3.在组织4.具体的Linux系统是如何做的&#xff1f;1.基本概念2.描述进程-PCB3.task_struct和PCB的关系4.task_struct内容分类5.linux具体如何做的&#xff1f;6.查看进程 1.windows和linux中的进程 一个已经加载到内存的程序&#xf…

【MySQL】MVCC机制(undo log,read view)

文章目录 前言一. 预备知识二. 模拟MVCC三. Read View四. RC与RR的本质区别结束语 前言 MVCC&#xff08;多版本并发控制&#xff09;是一种用来解决读-写冲突的无锁并发控制 MVCC为事务分配单向增长的事务ID&#xff0c;为每个修改保存一个版本&#xff0c;版本与事物ID相关联…

全球首款双模型AI手机METAVERTU2,为用户开发“第二大脑”

在2023年11月1日&#xff0c;英国奢侈手机品牌VERTU在香港举办了一场新品发布会&#xff0c;它推出了一款全新的AI手机称为METAVERTU2&#xff0c;这是全球首款双模型AI手机。此款手机将Web3技术与人工智能相结合&#xff0c;通过AI模型标记数据和AI Agent的方式&#xff0c;将…

MySql表自修改报错:You can‘t specify target table ‘student‘ for update in FROM clause

文章目录 一、发现问题二、场景1&#xff1a;在where条件中查询了修改表的数据三、场景2&#xff1a;在set语句中查询了修改表的数据 一、发现问题 在一次准备处理历史数据sql时&#xff0c;出现这么一个问题&#xff1a;You cant specify target table 表名 for update in FR…

【JavaScript】Date 日期对象

日期对象 实例化 // 1. 实例化// const date new Date(); // 系统默认时间const date new Date(2020-05-01) // 指定时间// date 变量即所谓的时间对象console.log(typeof date)方法 // 1. 实例化const date new Date();// 2. 调用时间对象方法// 通过方法分别获取年、月、…

React Native自学笔记

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

Python教程---Python简介以及安装解释器

1.Python简介 Python是解释型语言,Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。作为…

如何设置OBS虚拟摄像头给钉钉视频会议使用

环境&#xff1a; OBS Studio 29.1.3 Win10 专业版 钉钉7.1.0 问题描述&#xff1a; 如何设置OBS虚拟摄像头给钉钉视频会议使用 解决方案&#xff1a; 1.打开OBS 底下来源这添加视频采集设备 选择OBS虚拟摄像头 2.源那再建一个图像&#xff0c;随便选一张图片 3.点击虚…

SpringBoot项目打包与运行

1.clean生命周期 说明&#xff1a;为了项目能够正确打包&#xff0c;先清理打包文件。 2.package生命周期 说明&#xff1a;打包后生成以下目录。 2.1问题 说明&#xff1a;springboot_08_ssmp-0.0.1-SNAPSHOT.jar中没有主清单属性。 2.2解决 说明&#xff1a;注释skip&…

Python之Excel数据相关

Excel Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具&#xff0c;再加上成功的市场营销&#xff0c;使Excel成为最流行的个人计算机数据处理软件。在1993年&#xff0c;作为Microsof…

JS异常处理——throw和try、catch以及debugger

让我为大家介绍一下异常处理吧&#xff01; 异常处理是指预估代码执行过程中可能发生的错误&#xff0c;然后最大程度的避免错误的发生导致整个程序无法继续运行 throw 抛异常 第一种写法 function fun(x, y) {// undefined是false 但取反就是trueif (!x || !y) {// 第一种写…

Linux基本指令

目录 1.ls指令 2.pwd指令 3.cd指令 4.touch指令 5.mkdir指令 6.rmdir指令和rm指令 7.man指令 8.cp指令 9.mv指令 10.cat指令 11.more指令 12.less指令 13.head指令 14.tail指令 15.date指令 16.cal指令 17.find指令 18.grep指令 19.zip/unzip指令 2…

leetcode:387. 字符串中的第一个唯一字符

一、题目 函数原型 int firstUniqChar(char* s) 二、算法 设置一个大小为26的字符数组&#xff0c;位置0 - 25 分别对应字符 a - z 。遍历两次字符串&#xff0c;第一次记录下每个字符出现的次数&#xff0c;第二次检查哪个字符最先遍历到且出现次数为1&#xff0c;返回该字符即…

如何将R128的lspsram频率提高至200M?

一、修改频率方法 首先通过cboot0命令&#xff0c;跳转到boot0的代码中&#xff0c;路径为&#xff1a; ${root_dir}/lichee/brandy-2.0/spl/ 找到lspsram的代码&#xff0c;路径为&#xff1a; ${root_dir}/lichee/brandy-2.0/spl/drivers/psram 修改头文件&#xff0c;将2…

由一个自动化脚本运维展开的思考

今天分享一个思路&#xff0c;如何通过脚本集中管理程序的启停。减少人工的介入。 例子 好的&#xff0c;这里有一个基本的shell脚本示例&#xff0c;你可以根据你的具体需求进行修改。 启动脚本&#xff08;start.sh&#xff09;&#xff1a; #!/bin/bash ./test_server_1…

ZZ038 物联网应用与服务赛题第C套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (C卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工具、软件安装文件等,都…

centos部署java程序

后台启动java程序 nohup java -jar -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/data/app1/logs/ /data/app1.jar --spring.config.location/data/app1/config/application.properties,/data/app1/config/application-dev.properties > /data/app1/logs 2>&1…

pytest 使用(一)

pytest 使用pytest&#xff0c;默认的测试用例的规则以及基础应用pytest测试用例的运行方式pytest执行测试用例的顺序是怎样的呢&#xff1f;如何分组执行&#xff08;冒烟&#xff0c;分模块执行&#xff0c;分接口和web执行&#xff09;pytest跳过测试用例 b站课程链接 使用…