官方文档:Dependency Scope
许多程序对 Maven 其实并不熟悉,大多停留在会使用 mvn clean package
打包的程度上。我个人很推荐大家有时间的时候看看 Maven 方面的书籍资料。作为一个专业的工具,Maven 是很值得大家去学习的。推荐《Maven 实战》这本书。
Scope 优化
Example: 编写 Spark 程序的时候,将 Spark 相关的包的 scope 设置为 provided 可以减少最后生成的包的大小,大致减少50M。实际工作中发现许多有多年经验的 Spark 开发者都没有这个意识。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.binary.version}</artifactId>
<version>${spark.version}<ersion>
<scope>provided</scope>
</dependency>