mysql maven 依赖关系_Maven依赖总结

一:依赖范围

Maven在编译项目主代码的时候需要使用一套classpath。其次,在编译和执行测试的时候会使用另外一套classpath。最后,实际运行Maven项目的时候,又会使用一套classpath。

所谓的依赖范围就是用来控制依赖与这三种classpath(编译、测试、运行)的关系,Maven有以下几种依赖范围:

compile:编译依赖范围。如果没有指定,默认使用该依赖范围。使用此依赖范围时,对于编译、测试、运行都有效。例如:spring-core,编译、测试、运行时都需要使用该依赖。

test:测试依赖范围。只对测试classpath有效。例如:JUnit,它只在编译测试代码以及运行测试的时候才需要,编译和运行classpath时无法使用此依赖。

provided:已提供依赖范围。对于编译和测试时有效,但在运行时无效。例如:servlet-api,编译和测试项目的时候需要该依赖,但运行时,由于容器已经提供,就不需要Maven重复的引入。

runtime:运行时依赖。编译时无效,对于测试和运行有效。例如:JDBC驱动实现,编译时只需要JDK提供的JDBC接口,只有在执行测试和运行时才需要实现上述接口的具体JDBC驱动。

system:系统依赖范围。同provided。使用该依赖时必须通过systemPath元素显式地指定依赖文件路径。主要用于依赖本地的、且Maven仓库之外的类库文件。例如:

javax.sql

jdbc-stdext

2.5

system

${spath}/

你可能感兴趣的:(mysql,maven,依赖关系)