maven的scope 依赖范围

Maven中的依赖范围包括compile、test、provided、runtime等,用于控制不同环境下jar包的使用。例如,test范围的依赖只在测试环境中可用,而provided适用于编译和测试但不在运行环境提供。runtime范围的依赖则在测试和运行环境使用。未指定scope时,默认为compile。文章还介绍了如何通过Maven的profile功能定义和切换不同的环境配置,如开发环境和生产环境,以便于在构建过程中快速适应不同环境需求。
摘要由CSDN通过智能技术生成

依赖范围

通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境。

如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用。

在这里插入图片描述

那么 scope 都可以有哪些取值呢?

依赖范围编译classpath测试classpath运行classpath例子
compileYYYlogback
test-Y-Junit
providedYY-servlet-api
runtime-YYjdbc驱动
systemYY-存储在本地的jar包
  • compile :作用于编译环境、测试环境、运行环境。
  • test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
  • provided :作用于编译环境、测试环境。我们后面会学习 servlet-api ,在使用它时,必须将 scope 设置为该值,不然运行时就会报错
  • runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,当然不设置也没有任何问题

注意:

  • 如果引入坐标不指定 scope 标签时,默认就是 compile 值。以后大部分jar包都是使用默认值。

其中对几个环境进行解释:

编译classpath:

是指在main包下可以引用到该依赖包~

在这里插入图片描述

测试classpath:

是指在test包下 , 是指该依赖是可以在test包下引用到

在这里插入图片描述

运行时classpath:

是指在我们打包时, 包里面会包含这个依赖, 把这个依赖打进去。
相反, 如果我们所选的这个scope中不包含我们的运行时classpath, 那么就会在打包后的依赖中看不到这个依赖。

比如我们的scope 如果设置的是provide , 那么就在打好的包中是看不到这个依赖的。

多环境配置步骤

多环境配置有什么好处?

  • maven提供配置多种环境的设定,帮助开发者使用过程中快速切换环境
    在这里插入图片描述
定义多环境
<!--定义多环境-->
<profiles>
    <!--定义具体的环境:生产环境-->
    <profile>
        <!--定义环境对应的唯一名称-->
        <id>env_dep</id>
        <!--定义环境中专用的属性值-->
        <properties>
            <jdbc.url>jdbc:mysql://127.0.0.1:3306/ssm_db</jdbc.url>
        </properties>
        <!--设置默认启动-->
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <!--定义具体的环境:开发环境-->
    <profile>
        <id>env_pro</id>
        ……
    </profile>
</profiles>
2.2 使用多环境(构建过程)
【命令】:
mvn 指令 –P 环境定义id

【范例】:
mvn install –P pro_env  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CQXXCL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值