1、<dependencyManagement>、<dependencies> 标签:
1) 父工程的 pom.xml 中,<dependencies> 没有外层标签 <dependencyManagement>,里面的依赖可以被子工程直接使用。
2) <dependencies> 处于 <dependencyManagement> 中,子工程还需要重新引入依赖,只不过不需要加版本号了。
总结:dependencyManagement 提供了一种管理依赖版本号的方式
2、依赖范围
maven中三种classpath
编译,测试,运行
1.compile:默认范围,编译测试运行都有效
2.provided:在编译和测试时有效
3. test:只在测试时有效
4.runtime:在测试和运行时有效
5.system:在编译和测试时有效,与本机系统关联,可移植性差
简单理解:项目打包,不会将 scope=provided 的 jar 包打到 war 包的 WEB-INF/lib 下
用途:服务器 $TOMCAT_HOME/webapps/ROOT/WEB-INF/lib 下已经提供了这样的一个包的时候,不把包打到项目里,防止冲突