使用Maven中的scope总结

使用Maven中的scope属性可以控制依赖关系的传递范围。scope有以下属性值:

  • compile

依赖于当前项目的compile周期,该依赖会一直对所有周期都有效。默认值。

  • provided

只在编译和测试classpath中有用,但运行时不在classpath中。例如,servlet-api依赖可以设置为provided。在打包时不会将依赖项打入输出文件中。

  • runtime

运行和测试时需要,编译时不需要。

  • test

仅在测试时使用。不参与编译、打包等工作。

  • system

与provided类似,但是需要显式地提供文件路径。建议不要使用该属性。

下面是两个示例:

1. 将依赖设置为compile

<dependencies>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>29.0-jre</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

上面的代码将Guava库作为compile级别的依赖项引入。compile级别的依赖项会一直有效,包括编译、测试和运行时。

2. 将依赖设置为provided

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

上面的代码将Servlet API作为provided级别的依赖项引入。provided级别的依赖项只在编译和测试classpath中有用,但在运行时不在classpath中。因此,在打包时不会将依赖项打入输出文件中。

总结:使用scope属性可以控制依赖关系的传递范围,可根据不同的需要进行设置,避免不必要的依赖传递。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Maven中的scope总结 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 用JS动态设置CSS样式常见方法小结(推荐)

    关于用JS动态设置CSS样式的常见方法,可以有以下几种实现方式: 1. 通过 JavaScript 对样式表对象进行操作 可以获取到页面上所有的样式表的对象,通过修改其中的样式信息来实现动态设置 CSS 样式的效果。 var stylesheet = document.styleSheets[0]; // 获取样式表对象,假设是第一条样式表 var rule…

    Java 2023年6月15日
    00
  • 基于java实现画图板功能

    下面我将详细讲解“基于Java实现画图板功能”的完整攻略。 1. 确定项目需求 首先,我们需要明确项目的需求。画图板的主要功能有绘制基础图形(如线、矩形、圆形、椭圆等)、编辑已绘制图形(包括拖动、改变大小等操作)、实现撤销和重做等操作。我们需要仔细分析需求,确定实现细节,以指导后续的开发。 2. 选择合适的开发工具 接下来,我们需要选择合适的开发工具。Jav…

    Java 2023年5月23日
    00
  • C#实现的最短路径分析

    下面是C#实现最短路径分析的完整攻略: 什么是最短路径分析? 最短路径分析是图论中的一个重要问题,在某个图中,起点到终点之间有多条路径可以选择,最短路径算法就是找到这些路径中最短的那个。最短路径算法可应用于交通运输、电信网络等众多领域中。 最短路径分析的算法及实现 最短路径分析的算法有多种,其中 Dijkstra 算法和 Floyd-Warshall 算法较…

    Java 2023年5月19日
    00
  • JAVA中STRING的常用方法小结

    下面是关于”JAVA中STRING的常用方法小结”的完整攻略: 1. 字符串的常用方法 Java中String类的常用方法如下: 1.1 以字符串形式返回字符序列 String str = "Hello World!"; System.out.println(str.toString()); 结果:Hello World! 1.2 将字符…

    Java 2023年5月26日
    00
  • Spring MVC中使用Controller如何进行重定向

    在 Spring MVC 中,我们可以使用 Controller 进行重定向。重定向是指将用户请求重定向到另一个 URL,通常用于处理表单提交后的页面跳转。本文将详细讲解 Spring MVC 中使用 Controller 进行重定向的完整攻略,包括如何使用 RedirectAttributes 和 ModelAndView 两种方式进行重定向,并提供两个示…

    Java 2023年5月18日
    00
  • mybatis那些约定的配置你真的都了解吗(经验总结)

    下面我为大家详细讲解“mybatis那些约定的配置你真的都了解吗(经验总结)”的完整攻略。 1. 前言 Mybatis 是一款优秀的 ORM 框架,具有使用简单、性能优异等特点。Mybatis 中有许多约定的配置,如果掌握了这些配置,会让我们在开发中更加得心应手。接下来,我将为大家介绍这些约定的配置。 2. 约定的配置 2.1. 命名空间 在 Mapper …

    Java 2023年5月19日
    00
  • java查找字符串中的包含子字符串的个数实现代码

    下面是“Java查找字符串中的包含子字符串的个数实现代码”的完整攻略。 问题描述 我们需要写一个Java程序,用于在一个字符串中查找指定的子字符串,并返回该子字符串在源字符串中出现的次数。 解决方案 我们可以使用Java内置的字符串函数或正则表达式来实现这个功能,下面是两种不同的方法: 方法一:使用String函数 我们可以使用String类中提供的inde…

    Java 2023年5月27日
    00
  • java处理字节的常用工具类

    Java处理字节的常用工具类 Java作为一门强大的编程语言,提供了一系列的工具类来处理字节数据。在以下的文章中,我将会详细讲解Java处理字节的常用工具类,包括InputStream、OutputStream、ByteArrayInputStream、ByteArrayOutputStream、DataInputStream、DataOutputStrea…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部