maven进阶总结

news2024/9/22 21:35:00

maven进阶总结

      • 1. maven之间可以互相导包
      • 2. maven的依赖是具有传递性的
      • 3. 可选依赖和排除依赖:
      • 4. 继承与聚合
        • 4.1聚合
        • 4.2 继承
      • 5. 属性的配置与使用
      • 6. 版本管理
      • 8. 多环境开发和跳过测试(了解)

1. maven之间可以互相导包

从当前maven的pom文件中,找到对应的坐标,然后在其他maven中导入改坐标就可以了,但是想到导入该坐标,需要使用生命周期中的install,必须先安装到本地才可以在其他的包中识别并编译成功。

<dependency>
          <groupId>org.example</groupId>
          <artifactId>maven_03_pojo</artifactId>
          <version>1.0-SNAPSHOT</version>
      </dependency>

2. maven的依赖是具有传递性的

比如:我在maven_03_pojo中导入了org.mybatis,那么我maven_02_ssm中不需要导入该坐标,也可以识别到这个包,这就是maven的依赖传递。

在这里插入图片描述

3. 可选依赖和排除依赖:

可选依赖:我隐藏我的东西,不想让别人用

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
            <!-- 可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性-->
            <optional>true</optional>
        </dependency>

排除依赖:我用了别人的东西,一部分我不想用

<dependency>
    <groupId>org.example</groupId>
    <artifactId>maven_04_dao</artifactId>
    <version>1.0-SNAPSHOT</version>
    <exclusions>
      <exclusion>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
      </exclusion>
    </exclusions>
  </dependency>

4. 继承与聚合

4.1聚合

在这里插入图片描述
步骤:

  • 4.1.1. 创建Maven模块,设置打包类型为pom
    	<packaging>pom</packaging>
    
  • 4.1.2. 设置当前聚合工程所包含的子模块名称
    	 <!--设置管理模块的名称-->
    <modules>
        <module>../maven_02_ssm</module>
        <module>../maven_03_pojo</module>
        <module>../maven_04_dao</module>
    </modules>
    

聚合工程中所包含的模块在进行构建时会根据模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关参与聚合的工程无法向上感知是否参与聚合,只能向下配置哪些模块参与本工程的聚合

4.2 继承

在这里插入图片描述
步骤:

  • 4.2.1. 创建Maven模块,设置打包类型为pom
    	<packaging>pom</packaging>
    
  • 4.2.2. 在父工程的pom文件中配置依赖关系 (子工程将沿用父工程中的依赖关系)
  • 4.2.3 配置子工程中可选的依赖关系
    	 <!--设置管理模块的名称  子工程不需要配置版本-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.12</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  • 4.2.4 在子工程中配置当前工程所继承的父工程
    	    <parent>
        <groupId>org.example</groupId>
        <artifactId>maven_01_parent</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../maven_01_parent/pom.xml</relativePath>   这一行不写也能用,帮忙定位位置的
    </parent>
    
  • 4.2.5 在子工程中配置使用父工程中可选依赖的坐标
    	 <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>
    

    子工程中使用父工程中的可选依赖时,仅需要提供群组id和项目id,无需提供版本,版本由父工程统一提供,避免版本冲突子工程中还可以定义父工程中没有定义的依赖关系

在这里插入图片描述

5. 属性的配置与使用

  • 5.1定义属性
    <!--定义属性-->
    <properties>
        <spirng.version>5.2.0.RELEASE</spirng.version>
        <log4j.version>1.2.12</log4j.version>
        <mybatis-spring.version>1.3.0</mybatis-spring.version>
    </properties> 
    
  • 5.2 引用属性
    <!--定义属性-->
    <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>
    

6. 版本管理

在这里插入图片描述

8. 多环境开发和跳过测试(了解)

  1. a
  2. a

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

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

相关文章

DNS服务器部署的详细操作(图文版)

DNS服务器的部署 打开虚拟机后查看已经开放的端口&#xff0c;可以看到没有TCP53、UDP53&#xff0c;说明DNS服务端口没有打开 打开我的电脑—双击CD驱动器— 选择安装可选的Windows组件 选择网络服务—域名系统&#xff08;DNS&#xff09;— 点击下一步后会弹出如下弹…

Kubernetes08:Controller (有状态应用)

Kubernetes08&#xff1a;Controller 1、无状态和有状态的区别 1&#xff09;无状态&#xff1a; 认为Pod都是相同的没有顺序要求不用考虑我在哪个node上运行随意进行伸缩和扩展 有状态&#xff1a; 上面的因素都需要考虑到让每个Pod都是独立的&#xff0c;保持Pod启动顺序…

mysql去重查询的三种方法

文章目录前言一、插入测试数据二、剔除重复数据方法1.方法一&#xff1a;使用distinct2.方法二&#xff1a;使用group by3.方法三&#xff1a;使用开窗函数总结前言 数据库生成环境中经常会遇到表中有重复的数据&#xff0c;或者进行关联过程中产生重复数据&#xff0c;下面介…

【API网关】Kong安装和基本操作

文章目录前言一、API网关选型和Kong的安装1. 什么是API网关2. API网关技术选型3. 安装postgresql和migrations4. 安装kong5. 安装konga二、基本的路由转发配置1. kong的8001、8000和1337端口号的关系2. 基本的路由转发配置3. kong集成consul实现服务发现和负载均衡4. kong配置j…

程序员推荐的良心网站合集!

今天来给大家推荐几个程序员必看的国外良心网站合集。 IBM developer 技术性很强的博客网站&#xff0c;网站自带真实示例代码和架构解决方案&#xff0c;大家可以在上面找到适合自己的语言方向开始学习交流。 https://developer.ibm.com/ infoq 技术论坛社区&#xff0c;内…

【JavaScript】根据元素内容遍历元素的方案

▒ 目录 ▒&#x1f6eb; 导读需求1️⃣ jQuery2️⃣ XPATH&#xff08;document.evaluate&#xff09;3️⃣ 原生js&#xff08;querySelectorAll & Array&#xff09;&#x1f6ec; 文章小结&#x1f4d6; 参考资料&#x1f6eb; 导读 需求 因业务需要&#xff0c;根据元…

文献阅读笔记 # 面向大规模多版本软件系统的代码克隆检测加速技术

面向大规模多版本软件系统的代码克隆检测加速技术&#xff0c;方维康 吴毅坚 赵文耘&#xff0c;《计算机应用与软件》复旦大学软件学院、复旦大学上海市数据科学重点实验室2022 April 面向大规模多版本软件系统的代码克隆检测加速技术 摘要 很多代码克隆检测方法主要针对软…

_Linux (网络版计算器简易实现)

文章目录1. 协议2. 网络版计算器简易实现代码链接3. 网络版计算器2-1. 约定的协议方案有两种2-3. 协议代码框架1. 自定义的协议方案2. json(库里的完整协议方案&#xff09;2-4. send和recv单独使用不安全2-5. 剩余代码写法讲解参考如下&#xff1a;2-6. 代码运行结果示意图&am…

9.5 PIM-SM

实验目的 熟悉PIM-SM的应用场景掌握PIM-SM的配置方法 实验拓扑 实验拓扑如图9-40所示&#xff1a; 图9-40&#xff1a;PIM-SM 实验步骤 &#xff08;1&#xff09;配置IP地址 MCS1的配置 MCS1的配置如图9-41所示&#xff1a; 图9-41&#xff1a;配置MCS1的IP地址 R1的配置 …

VMware安装FreeBSD虚拟机

1. 下载FreeBSD镜像地址 国内阿里云下载地址&#xff1a; freebsd-releases-ISO-IMAGES安装包下载_开源镜像站-阿里云 选择自己需要的版本下载。 2. 创建FreeBSD虚拟机 2.1. 选择操作系统类型 2.2. 导入FreeBSD镜像 3. 安装FreeBSD 第1步&#xff1a;保持默认让其自动进入…

复习知识点十之方法的重载

目录 方法的重载 练习1: 练习1: 数组遍历 练习2: 数组的最大值 练习3: 练习4: 复制数组 基本数据类型和引用数据类型 方法的重载 Java虚拟机会通过参数的不同来区分同名的方法 练习1: public class Test4 {public static void main(String[] args) {//调用方法 // …

grid宫格布局新手快捷上手-f

前言 grid 网上有很多&#xff0c;但都是大而全的&#xff0c;感觉新人上手很吃力&#xff0c;本文仅以最快捷的方式进行介绍&#xff0c;如何使用grid宫格布局 本文是新人上手&#xff0c;若想了解更多grid布局&#xff0c;请阅读其他文章 使用 声明布局 display: grid;声…

springboot+pgbouncer+postgres数据库连接池集成方案及问题解决

期望通过每一次分享&#xff0c;让技术的门槛变低&#xff0c;落地更容易。 —— around 前言 旨在解决微服务项目全是连接池并影响数据库并发连接&#xff0c;作者的环境是基于sprongboot微服务连接postgres数据库&#xff0c;每个微服务的DAO层配置都使用了连接池技术。后续…

一个线程两次调用start()方法会出现什么情况?

第17讲 | 一个线程两次调用start()方法会出现什么情况&#xff1f; 今天我们来深入聊聊线程&#xff0c;相信大家对于线程这个概念都不陌生&#xff0c;它是 Java 并发的基础元素&#xff0c;理解、操纵、诊断线程是 Java 工程师的必修课&#xff0c;但是你真的掌握线程了吗&am…

如何编程实现从多数据库操作数据

对于数据量很大的复杂系统&#xff0c;有时候会采用分库或者分表的减轻单台数据库服务器压力&#xff0c;截止目前有一些工具直接支持读写分离等&#xff0c;例如ShardingSphere&#xff0c;如果不采用工具框架&#xff0c;从编码出发&#xff0c;如何实现从多个数据库读写数据…

FFmpeg 中的多线程解码

1.共享变量的互斥互斥锁&#xff08;mutex-lock&#xff09;是一种信号量&#xff0c;用来防止两个线程在同一时刻访问相同的共享资源&#xff0c;它有锁定状态和非锁定状态。在任意时刻&#xff0c;一个线程要想存取共享数据&#xff0c;线程必须首先获得mutex-lock&#xff0…

一种全新的图像变换理论的实验(四)——研究目的替代DCT和小波

一、前言 2023年02月28日凌晨1点 以前我定义为这个算法是滤波算法&#xff0c;实则上应该算是一种新变换算法&#xff0c;比如傅里叶变换&#xff08;FFT&#xff09;、离散余弦变换&#xff08;DCT&#xff09;&#xff0c;以及小波变换。所以就把所有的标题改变了一下。 本次…

MySQL的InnoDB 三种行锁,SQL 语句加了哪些锁?

InnoDB 三种行锁&#xff1a; Record Lock&#xff08;记录锁&#xff09;&#xff1a;锁住某一行记录 Gap Lock&#xff08;间隙锁&#xff09;&#xff1a;锁住一段左开右开的区间 Next-key Lock&#xff08;临键锁&#xff09;&#xff1a;锁住一段左开右闭的区间 哪些语句…

前端面试题 —— HTML

目录 一、src 和 href 的区别 二、对 HTML 语义化的理解 三、DOCTYPE(⽂档类型) 的作⽤ 四、script 标签中 defer 和 async 的区别 五、常⽤的 meta 标签有哪些&#xff1f; 六、HTML5 有哪些更新 八、行内元素有哪些&#xff1f;块级元素有哪些&#xff1f; 空(void)元素…

【正点原子FPGA连载】第十九章FreeRtos Hello World实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十九章FreeRto…