Maven-07.依赖管理-依赖范围

news2024/11/30 4:53:42

一.依赖范围

一个项目依赖的jar包默认情况下可以在任何地方使用。这里的任何地方是指在main文件夹范围内作用,test文件夹范围内作用和package打包进去都可以。 

依赖的范围可以通过scope标签进行调整, scope的值和其作用范围以及代表性jar包范例如上表所示。

二.演示

情况一:compile

我们首先演示scope值为compile,即默认值的情况。

maven-project01的pom.xml文件如下:

<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>com.gjw</groupId>
  <artifactId>maven-project01</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven-project01</name>
  <url>http://maven.apache.org</url>

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

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>


  </dependencies>
</project>

可以看到在<dependencies>中logback没有设置<scope>,即为默认的compile,我们在main和test中调用logback中的接口,类和方法,均可以调用。

 

 接下来我们验证maven-project01中的logback依赖是否可以参与打包运行。默认的maven打包是不会将项目的依赖打包进去的。我们需要首先设置一下打包插件。

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals><goal>single</goal></goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

将该代码放在<project>标签下,并刷新pom.xml。然后点击右侧maven标志打开面板,找到maven-project01中的Lifecycle中的package,双击进行打包。

接下来查看打包好的项目中是否含有所依赖的logback。 

 可以看到logback也参与了打包。 

情况二:test

修改pom.xml内的logback坐标scope标签为test。并刷新。

<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.2.3</version>
  <scope>test</scope>
</dependency>

刷新过后可以看到main中的App.java报错了。

证明scope为test时,logback的作用范围不包括main文件夹。

其余情况在此不再演示。

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

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

相关文章

渗透必备:BurpSuite

一、介绍 BurpSuite是渗透测试、漏洞挖掘以及Web应用程序测试的最佳工具之一&#xff0c;是一款用于攻击web 应用程序的集成攻击测试平台&#xff0c;可以进行抓包、重放、爆破&#xff0c;包含许多工具&#xff0c;能处理对应的HTTP消息、持久性、认证、代理、日志、警报。 …

电力领域知识图谱:赋能电力智能发展的关键技术

电力领域知识图谱&#xff1a;赋能电力智能发展的关键技术 前言电力领域知识图谱 前言 电力领域知识图谱作为一项新兴技术&#xff0c;在电力系统中具有重要的应用价值。它能够以结构化的方式刻画电力系统中的各种概念、实体、事件及其间的关系&#xff0c;为电力人工智能的发…

淮北农商银行年报与审计报告数据不合,盈利能力与资产质量承压

撰稿|芋圆 来源|贝多财经 7月24日&#xff0c;国家金融监督管理总局发布《国家金融监督管理总局安徽监管局关于淮北农村商业银行股份有限公司&#xff08;以下简称“淮北农商行”或“淮北农商银行”&#xff09;吸收合并安徽濉溪农村商业银行股份有限公司的批复》。 内容显示…

SM4前后端加密和解密

一&#xff1a;前端vue 二&#xff1a;后端Java 三&#xff1a;详细 3.1maven添加 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15to18</artifactId><version>1.66</version> </dependency> <…

合宙Air700ECQ硬件设计手册——主要性能

Air700ECQ是一款基于移芯EC716E平台设计的LTE Cat 1无线通信模组。支持移动双模FDD-LTE/TDD-LTE的4G远距离无线传输技术。以极小封装&#xff0c;极高性价比&#xff0c;满足IoT行业的数传应用需求。例如共享应用场景&#xff0c;定位器场景&#xff0c;DTU数传场景等。 无论是…

IP in IP 协议

IP in IP 是一种多重IP协议&#xff0c;即&#xff1a;客户机可以发送一个IP协议内部在嵌套一个IP协议到某个特定的主机上&#xff0c;在由具体的主机作为路由进行转发的协议。 例如&#xff1a; IP in IP帧协议结构为&#xff0c;第一层为发送到IP in IP 路由主机的报文&…

引领未来教育的新工具,NUC 14 Pro 赋能智慧课堂

在追求高效、互动、个性化的教育新时代&#xff0c;传统的教学工具已难以满足现代教育的需求。华硕NUC 14 Pro应运而生&#xff0c;它以小巧的机身、强大的性能以及丰富的商用功能&#xff0c;正逐步成为重塑教育生态的重要力量。它不仅是一款教学工具&#xff0c;更是推动教育…

从bbl和overleaf版本解决Arxiv提交后缺失参考文献Citation on page undefined on input line

debug 食用指南&#xff1a;框架/语言&#xff1a;问题描述&#xff1a;解决方案&#xff1a;问题原因&#xff1a;版本解决方案&#xff1a; 安利时间&#xff1a; 食用指南&#xff1a; 框架使用过程中的问题首先要注意版本发布时间造成方法弃用 当你在CSDN等网站查找不到最…

家电触摸感应芯片/4键触控检测IC-VK36Q4 DFN10L超小封装触摸芯片

产品品牌&#xff1a;永嘉微电/VINKA 产品型号&#xff1a;VK36Q4 封装形式&#xff1a;DFN10L 概述 VK36Q4具有4个触摸按键&#xff0c;可用来检测外部触摸按键上人手的触摸动作。该芯片具有较 高的集成度&#xff0c;仅需极少的外部组件便可实现触摸按键的检测。 提供了4路…

jmeter中的json提取器

将响应结果提取作为变量 线程组->添加->后置处理器->json提取器 可以通过debug 调试器查看有没有提取出来 线程组->添加->取样器->debug sampler&#xff08;debug调试器&#xff09; 获取出来的响应数据。作为下一条接口的是否发送的判断内容 线程组…

一款多平台开源索尼 PlayStation 3 模拟器和调试器

大家好&#xff0c;今天给大家分享的是一款开源的PlayStation 3模拟器RPCS3。它允许用户在PC上运行PlayStation 3的游戏&#xff0c;无需PlayStation 3主机。 项目介绍 RPCS3 是一款多平台开源索尼 PlayStation 3 模拟器和调试器&#xff0c;使用 C 编写&#xff0c;适用于 Wi…

【秋招笔试】8.17米哈游秋招(第二场)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

OS-Copilot:自学习的通用计算机智能体

人工智能咨询培训老师叶梓 转载标明出处 现有的计算机智能体大多局限于特定应用或领域&#xff0c;难以应对多样化和不断变化的计算机操作需求。这种局限性不仅限制了智能体的实用性&#xff0c;也阻碍了其在更广泛场景中的应用潜力。为了突破这一瓶颈&#xff0c;研究者们一直…

接口自动化面试题超全,助你离Offer又近一步!

一 、请问你是如何做接口测试的&#xff1f; 大体来说&#xff0c;经历以下过程&#xff1a;接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说&#xff0c;接口测试流程分成以下九步&#xff1a; 第一步&am…

vue3基础ref,reactive,toRef ,toRefs 使用和理解

文章目录 一. ref基本用法在模板中使用ref 与 reactive 的区别使用场景 二. reactive基本用法在模板中使用reactive 与 ref 的区别使用场景性能优化 三. toRef基本用法示例在组件中的应用主要用途对比 ref 和 toRef 四. toRefs基本用法示例在组件中的应用主要用途对比 ref 和 t…

盘点16个有名气的进销存软件,你听说过哪一款?

进销存系统不仅能实现采购、销售、库存的一体化管理&#xff0c;精确记录每一笔业务数据&#xff0c;还帮助企业实时掌握库存状况&#xff0c;避免缺货或积压&#xff0c;降低成本。同时&#xff0c;通过数据分析&#xff0c;进销存还为企业决策提供了有力支持&#xff0c;助力…

职升网:二级建造师延续注册需要啥资料?

延续注册 注册周期&#xff1a;有效期为3年 组织管理&#xff1a;省、自治区、直辖市建设行政主管部门 申请时间&#xff1a;初始注册期满 申请表&#xff1a;二级建造师延续注册申请表下载 延续注册条件&#xff1a; 注册有效期满需要继续执业的&#xff0c;应当在注册有…

Macos M1 IDEA本地调试 HBase 2.2.2

# 1. 前提 执行 mvn clean package assembly:single -DskipTests没问题&#xff0c;并在hbase-assembly/target目录下生成hbase-2.2.2-bin.tar.gz 文件夹 证明Maven 下载依赖没问题 1.1 报错 1 这里应该是报错找不到 com.google.protobuf:protoc:exe:osx-aarch_64:3.5.1 …

视频监控汇聚算法平台训练站车辆类型算法分析车辆类型检测应用方案

车辆类型检测算法是计算机视觉和深度学习技术在交通管理和智能车辆系统中的重要应用之一。这种算法通过自动分析和识别车辆图像&#xff0c;能够准确判断车辆的类型&#xff0c;如轿车、SUV、货车等。 运用方案 数据采集与预处理 采集包含车辆的图像或视频数据&#xff0c;包…

AI制作PPT软件哪个好?这个国产Gamma工具真心推荐!

各种AI工具层出不穷&#xff0c;尤其是办公领域&#xff0c;诞生了诸多可让办公提效的AI工具&#xff0c;如AI制作PPT软件&#xff0c;笔者亲自体验过多款AI制作PPT软件&#xff0c;在权衡多个维度之后&#xff0c;最终选择了博思AIPPT。 博思AIPPT&#xff0c;是新一代的AI制…