【maven】依赖范围,zookeeper面试点

本文介绍了Maven的依赖范围,如compile、test、provided、runtime和system,并用JUnit和servlet-api作为示例说明。同时,提到了Zookeeper在面试中的常见问题,分享了作者的 Java 工程师成长经历,并提供了Java面试题资源。
摘要由CSDN通过智能技术生成

JUnit是Java社区事实上的单元测试标准,这个依赖特殊的地方在于一个值为test的scope子元素,scope用来定义依赖范围。该依赖只会被加入到测试代码的classpath中。对于项目主代码,该依赖是没有任何作用的.JUnit是单元测试框架,只有在测试的时候才需要,因此使用该依赖范围。

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

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

**▶compile:**编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三 种classpath都有效。典型的例子是spring-core,在编译、测试和运行的时候都需要使用该依赖。

**▶test:**测试依赖范围。使用此依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此类依赖。典型的例子是JUnil,它只有在编译测试代码及运行测试的时候才需要。

**▶provided:**已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classPath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复地引人—遍。

**▶runtime:**运行时依赖范围。使用此依赖范围的Maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。典型的例子是JDBC驱动实现,项目主代码的编译只需要JDK提供的JDBC接

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值