我正在使用Eclipse 4.3.1与Maven集成。
Eclipse无法识别普通源文件和测试源文件之间的区别。
例如:当我使用一个Mockito类,其范围是在普通源文件夹中测试时,一切似乎都很好。或者当我在测试源文件夹中错误地创建一个类时,没有任何反应。
只有当Jenkins执行Maven构建时,才会显示编译错误。
我可以以某种方式使Eclipse正常工作吗?
答案 0 :(得分:2)
你必须在运行时和编译时间之间做出改变。
编译时间: Eclipse仅支持每个项目一个构建路径。如果您的测试文件和您的应用程序文件共享同一个项目,则它们共享相同的编译时类路径。这意味着您可以访问src目录(test或main)中的任何类以及任何依赖项中的类。 Eclipse无法将此标记为错误,因为它看不到所有这些文件之间的差异。
运行时间: Eclipse允许在运行时使用不同的类路径,m2e支持这一点。每个禁止访问都会导致RuntimeException(ClassNotFoundException)。
运行时访问如下:
# access from -> access to
src/main/java -> jar(scope: compile) [allowed]
src/main/java -> jar(scope: test) [forbidden]
src/main/java -> src/test/java [forbidden]
src/test/java -> jar(scope: compile) [allowed]
src/test/java -> jar(scope: test) [allowed]
src/test/java -> src/main/java [allowed]
回答你的问题:没有修补日食,你想要的是什么。 虽然您可以将测试文件和应用程序拆分为单独的项目。
最简单的解决方案是在签入之前在本地计算机上运行/测试您的应用程序。