maven笔记
maven生命周期
maven依赖范围
- compile:编译依赖范围,使用此依赖范围对于编译、测试、运行三种classpath都有效,即在编译、测试和运行时都要使用该依赖jar包;
- test:测试依赖范围,只对测试有效,表明只在测试的时候需要,在编译和运行时将无法使用该类依赖,如 junit;
- provided:已提供依赖范围。编译和测试有效,运行无效。如servlet-api,在项目运行时,tomcat等容器已经提供,无需Maven重复引入;
- runtime:运行时依赖范围。测试和运行有效,编译无效。如 jdbc 驱动实现,编译时只需接口,测试或运行时才需要具体的 jdbc 驱动实现;
- system:系统依赖范围,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径,不依赖Maven仓库解析,所以可能会造成建构的不可移植,谨慎使用。
依赖范围 | 编译有效 | 测试有效 | 运行有效 | 示例 |
---|---|---|---|---|
compile | ✔ | ✔ | ✔ | |
test | - | ✔ | - | junit |
provided | ✔ | ✔ | ✔ | |
runtime | - | ✔ | - | JDBC |
system | ✔ | ✔ | - |