java - Mavn执行测试时<scope>test</scope>导致错误
问题描述
学习maven test时,执行mvn test时,会找不到org.junit在pom.xml中已经引入
<dependencies><dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version></dependency><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope></dependency> </dependencies>
报错信息如下文件目录如下
hello目录下存在如下文件
其中GreeterTest为测试
执行mvn compile 或者mvn package也会报错
当把pom.xml中junit依赖的scope去掉时,编译和测试都能成功。
<dependencies><dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version></dependency><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency> </dependencies>
造成这个的原因是什么?maven在执行compile时同时编译*Test的文件吗,那么为什么mvn test也不能成功?mvn test不是会自动执行*Test的文件吗?而且scope test确定了测试时会引入junit
问题解答
回答1:这个问题其实你因为你不熟悉maven文件结构所致.测试类一般是放在src/test/java,而不是放在src/main/java下.maven在编译的时候,src/main/java下是不引用<scope>test</scope>的jar,而编译src/test/java下的测试这会引用<scope>test</scope>的jar
相关文章:
1. java - mybatis怎么实现在数据库中有就修改,没有就添加2. MYSQL新建用户设置可以远程访问的问题3. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题4. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)5. angular.js - angularjs的自定义过滤器如何给文字加颜色?6. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!7. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?8. mysql - 我的myeclipse一直连显示数据库连接失败,不知道为什么9. mysql - SQL操作时间的函数?10. mysql 为何insert的时候会有lock wait timeout 异常
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)