现在maven都会依赖 parent,而在parent中一般会定义dependencymanagement
<dependencyManagement> <dependencies> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.1</version> </dependency>
但是这种dependencyManagement并不是真的在项目中进行了依赖,自己的项目中还是要实际进行依赖,只不过不再需要写明version,而是由parent统一管理。
但是有一种情况需要注意,parent中定义了<scope>provided</scope> 如果子项目不覆盖这个scope 那么还是沿用parent的,而provided的含义是这个jar应该由发布到的web容器提供,也就是说不会随着项目发布,那么对于平时自己测试的代码,这种provided的jar是不会随着发布到自己的web容器的。
所以平时在测试的时候可以把parent中的scope覆盖为compile 方便自己的测试