在梳理项目的过程中发现很多开发同学对 Maven 依赖文件的配置并不了解,特别是对 Maven 的 optional 元素和 scope 元素的使用也非常随意。optional 是 Maven 依赖 jar 时的一个选项,表示该依赖是可选的,项目之间依赖不传递。当父项目引入 junit 依赖时,设置 optional 元素为 true。如果项目 B 不需要 Junit 的 jar 包,那么在其 pom 文件中不需进行任何处理便可以。打包时通常会包含该依赖,部署时会打包到 lib 目录下。scope 为 test 表示依赖项目仅参与测试环节,在编译、运行、打包时不会使用。system 范围依赖与 provided 类似,不过依赖项不会从 maven 仓库获取,而需要从本地文件系统提供。使用时,一定要配合 systemPath 属性。不推荐使用,尽量从 Maven 库中引用依赖。
暂无评论