为何Maven未下载JUnit依赖仍能成功构建项目?
Maven构建时JUnit依赖的常见疑问解答
首先纠正一个误解:Maven已经下载了JUnit依赖,只是你没在target目录里找到而已。Maven的所有依赖默认存储在本地仓库(Windows路径一般是
C:\Users\你的用户名\.m2\repository,Linux/macOS是~/.m2/repository),不是项目的target目录。你可以去这个路径下搜索junit相关文件夹,肯定能找到已经下载好的JAR包。其次,JUnit依赖的**作用域(scope)**是
test,这个作用域的规则是:- 仅在编译
src/test/java下的测试代码、运行测试用例时生效 - 不会被打包到项目最终生成的生产JAR文件中
- 不会被传递给依赖当前项目的其他项目
所以target目录里的最终产物(比如你的FFT库JAR)里不会包含JUnit,这是Maven的正常设计——测试代码和依赖不需要跟着生产代码分发。
- 仅在编译
最后,
mvn package的默认执行流程包含测试阶段:Maven会先编译主代码,再编译测试代码(此时会用到JUnit依赖),接着运行测试用例,测试通过后才会打包生成target里的JAR。你的构建成功了,说明测试已经正常执行完成,JUnit依赖肯定已经被Maven自动下载到本地仓库了,只是没出现在target目录里而已。
内容的提问来源于stack exchange,提问作者First User
相关产品推荐
相关产品推荐

