在使用Storm时,打包时报错原因是 storm-core 其实在打包时已经有依赖了 因此造成引入包冲突
在引入包下边加入 <scope>provided</scope>
就可以了 那么它的用法都有啥呢 ?
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>1.0-bdp-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Dependency scope 是用来限制依赖的传递性的,同时也影响了该依赖build时是否引入classpath。
类型 | 介绍 | 影响范围 |
---|---|---|
compile | 默认 | ALL |
provided | 只在编译时 测试时可用 build来运行时不加入classpath | runtime compilation |
runtime | 只是用于execution | runtime test |
test | 只用于测试 | only test |
system | 从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。 | |
import | 只用于 dependencyManagement 标签下 | Maven-dependencyManagement与import |
compile | provided | runtime | test | |
---|---|---|---|---|
compile | compile(*) | - | runtime | - |
provided | provided | - | provided | - |
runtime | runtime | - | runtime | - |
test | test | - | test | - |