使用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日

相关文章

  • Listener监听器,实现一个显示在线用户人数

    Listener监听器,实现一个显示在线用户人数 每博一文案 关于后半身,脾气越温,福报越深。 师傅说:惜命最好的方式不是养生,而是管好自己的情绪。 坏毛病都是惯出来的,但好脾气都是磨出来的,与人生气,伤的是和气,与自己生气,伤的是身体。 佛说:人有五毒心,贪嗔痴慢疑,其中一时的嗔念起,百万叶障深,火烧功德林,脾气来了,福气就走了。 破得了偏执,才修得了善行…

    Java 2023年5月9日
    00
  • 分析SpringBoot的启动原理

    下面我会详细地讲解分析Spring Boot启动原理的攻略,内容如下。 什么是Spring Boot Spring Boot 是一个基于Spring Framework构建的用于快速构建Web应用程序和微服务的开源框架。 Spring Boot的主要目的是简化Spring的配置和开发过程。Spring Boot集成了Spring框架,内嵌了Tomcat、Je…

    Java 2023年5月15日
    00
  • 浅谈Java中ThreadLocal内存泄露的原因及处理方式

    浅谈Java中ThreadLocal内存泄露的原因及处理方式 1. ThreadLocal的原理 ThreadLocal是Java中提供的一种线程局部变量。它为每个线程都提供了自己的局部变量,并且在线程内部是完全独立的。可以把ThreadLocal对象看作是一个map,key是线程,value是线程对应的变量值。当多个线程都使用同一个ThreadLocal对…

    Java 2023年5月20日
    00
  • Java实战之客户信息管理系统

    Java实战之客户信息管理系统攻略 在开发客户信息管理系统时,我们需要考虑以下几个方面: 系统需求 首先我们需要明确系统的需求,包括系统的功能以及性能等方面的要求。在实现这个过程中,我们可以采用敏捷开发的方式,分成多个阶段逐步完善。 技术栈 客户信息管理系统的开发需要运用到Java技术栈。包括Java、Spring框架、Mybatis等技术。针对不同的功能需…

    Java 2023年5月30日
    00
  • java 两阶段终止线程的正确做法

    Java中线程的终止一直是个比较重要的话题,如果终止线程不当,可能会导致内存泄漏、死循环等问题。本文将详细介绍Java中两阶段终止线程的正确做法,并且提供两个示例进行说明。 什么是两阶段终止模式 两阶段终止模式是指在终止线程时采用两个阶段的方式进行终止,第一阶段发送一个中断信号以告诉线程需要终止,第二阶段等待线程终止。 两阶段终止模式的主要原理是,在第一阶段…

    Java 2023年5月19日
    00
  • Java如何有效避免SQL注入漏洞的方法总结

    Java如何有效避免SQL注入漏洞的方法总结 SQL注入是Web应用程序中最常见的漏洞之一,攻击者通过输入恶意的SQL语句,获取非法的访问权限,从而使得Web应用程序的安全受到威胁。因此,对于Web应用程序开发来说,避免SQL注入是非常重要的。 1.使用PreparedStatement PreparedStatement是Java中处理动态SQL语句的一种…

    Java 2023年5月20日
    00
  • 深入了解Springboot核心知识点之数据访问配置

    深入了解Spring Boot核心知识点之数据访问配置 Spring Boot是一个非常流行的Java框架,它提供了许多便利的功能,其中包括数据访问。在本文中,我们将深入了解Spring Boot的数据访问配置,包括如何配置数据源、如何使用JdbcTemplate和如何使用Spring Data JPA。 配置数据源 在Spring Boot中,我们可以使用…

    Java 2023年5月15日
    00
  • UniApp + SpringBoot 实现微信支付和退款功能

    UniApp 是一款跨平台的移动应用开发框架,通常可同时构建出 iOS 和 Android 应用。SpringBoot 是一款流行的 Java Web 开发框架,提供了快速搭建 web 应用的能力。通过结合起来,可以实现微信支付和退款功能。 第一步:注册微信开发者账号 如果没有微信开发者账号,需要手动注册一个。注册成功后,需要进行微信支付相关的配置,包括商户…

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