Maven中optional和scope

optional 将依赖项设为可选,这样依赖该项目的项目,不会引入该依赖,减少依赖传递,减小jar和war体积,默认值为 false

常见的有 spring-boot-devtools 热部署,junit 单元测试

复制代码
<!--devtools 热部署-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <optional>true</optional>
</dependency>
复制代码

scope 元素主要用来控制依赖的使用范围

scope取值 范围 含义 依赖传递 例子
compile 编译、运行、测试时均有效 默认值 spring-core等核心jar包
provided 编译、测试时有效 不会被打包

spring-boot-devtools(生产不要热部署)

servlet-api(容器已提供,无需引入)

runtime 运行、测试时有效   JDBC驱动,如mysql-connector
test 测试时有效 不会被打包 JUnit
system 编译、测试时有效 从本地文件系统引入,不从maven引入,不推荐  
posted @   全玉  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示