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

相关文章

  • Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    Mysql json类型字段Java+Mybatis数据字典功能的实践方式概述 Mysql支持json类型数据,在应用程序开发中,经常需要将json类型数据存储到数据库中。考虑到数据字典的实现方式,可以将字典数据以json的方式存储到Mysql数据库表中,Java+Mybatis数据字典功能是通过将json类型的数据解析出来,然后在应用程序中使用这些数据。 …

    Java 2023年5月20日
    00
  • Spring占位符Placeholder的实现原理解析

    Spring占位符Placeholder的实现原理解析 在Spring中,占位符(Placeholder)是一个非常实用的功能,它可以在Spring容器启动时通过配置文件或环境变量等方式注入需要的配置值。本文将详细讲解Spring占位符的实现原理。 占位符的使用 在Spring中,占位符有两种使用方式:XML配置方式和注解方式。 XML配置方式 在XML配置…

    Java 2023年5月31日
    00
  • Java实现分页的前台页面和后台代码

    关于如何实现Java分页,需要分别从前台页面和后台代码两个部分进行讲解。 前台页面实现分页 在前台页面实现分页,主要采用的是利用jQuery的ajax异步加载技术来获取数据库中的数据,同时使用bootstrap的分页组件来实现分页。 示例代码如下: <!– 前台页面加载表格和分页组件 –> <table class="tabl…

    Java 2023年6月15日
    00
  • js+css实现的简单易用兼容好的分页

    这里是“js+css实现的简单易用兼容好的分页”的完整攻略: 什么是分页 分页指的是将大量数据分成多个页面,每次只显示其中的一部分数据,通过点击下一页或上一页来切换页面。常见的应用包括商城商品列表、新闻列表等。 分页的实现 HTML 首先,我们需要在HTML页面中添加分页的DOM结构。一般来说,分页的结构包含上一页、下一页、页码数等元素。 <div c…

    Java 2023年6月16日
    00
  • Spring Boot集成MyBatis访问数据库的方法

    下面我将详细讲解如何在Spring Boot中集成MyBatis,访问数据库的完整步骤。 第一步:引入相关依赖 在pom.xml文件中添加以下依赖,其中包括Spring Boot的启动器、MyBatis的启动器、MySQL数据库连接驱动、MyBatis的Spring Boot集成包以及数据库连接池依赖。 <dependency> <grou…

    Java 2023年5月20日
    00
  • 一篇文章带你玩转Spring bean的终极利器

    一篇文章带你玩转 Spring bean 的终极利器 Spring 是一个非常流行的 Java 开发框架,它的核心就是 IOC(Inversion of Control)和依赖注入(Dependency Injection)。Spring Bean 是 Spring Framework 的核心概念之一,它是被 Spring 托管的对象,通常是指业务逻辑组件、…

    Java 2023年5月19日
    00
  • 浅谈Java ThreadPoolExecutor的使用

    浅谈Java ThreadPoolExecutor的使用 什么是ThreadPoolExecutor ThreadPoolExecutor是Java中的线程池的实现类之一,通过它可以实现线程池的管理和任务分配的功能,是多线程程序开发中常用的工具。 ThreadPoolExecutor的构造方法 ThreadPoolExecutor有多个构造方法,常用的有以下…

    Java 2023年5月26日
    00
  • Struts2实现上传单个文件功能

    Struts2实现上传单个文件功能 1. 准备工作 在Struts2中实现文件上传功能,需要添加struts2-fileupload-plugin依赖包。可以在项目的pom.xml文件中加入以下代码: <dependency> <groupId>org.apache.struts</groupId> <artifac…

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