org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
provided
org.springframework.boot
spring-boot-starter-test
test
org.junit.jupiter
junit-jupiter-engine
2.maven的dependency标签中有一个option 标签,用来控制各个阶段的打包行为,其option有以下几个值:
①compile,缺省值,适用于所有阶段,会随着项目一起发布。
②provided,类似compile期望JDK,容器或使用者提供这个依赖。如servlet-api-2.3.jar,在发布到不同的容器时需替换掉。
③runtime,在运行时使用,如JDBC驱动,适用运行和测试阶段。 如热部署相关包。
④test ,只在测试时使用,用于编译和运行测试代码。不会随项目发布。如Junit-3.8.1.jar
⑤system, 类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
通俗的说:
1、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
2、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
3、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
4、runtime在运行的时候依赖,在编译的时候不依赖
依赖的默认依赖范围是compile
此外,对于公司内部开发的jar包,我们都加上
如:项目mycom-csa中使用了mycom-cas-client-1.0.3.jar,然而mycom-cas-client-1.0.3.jar 又使用了mycom-common-security-1.0.3.jar。所以我们在对mycom-csa打包时会把mycom-common-security-1.0.3.jar打进package中。解决的最好方法是:可以通知开发mycom-cas-client-1.0.3.jar的同事在mycom-cas-client-1.0.3.jar的pom.xml中对dependency修改为:
com.mycom mycom-common-security1.0.3-SNAPSHOT true
添加



