我们有一个编译为war的web maven模块,因此不需要直接包含servlet-api jar。我们使用<scope>provided</scope>
。
当我尝试编写一个小的main()来测试我的一个类时出现问题。这不是单元测试,而是驻留在代码本身。
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
public static void main(String[] args) {
final Injector injector = Guice.createInjector(new StandardModule());
// StandardModule is our standard module, with bindings to
// something that rightfully depends on servlet API
...
}
除了将我的模块拆分为两个或三个不同的模块外,还有一个我没想过的简单解决方法吗?
也许最好的解决方案是将此测试仪移至测试代码。
答案 0 :(得分:3)
如果您想要进行测试,可以使用<scope>test</scope>
。但是provided
在Eclipse中对我来说很好 - 它被添加到类路径中。
答案 1 :(得分:1)
如果你在m2eclipse中使用eclipse,<scope>provided</scope>
将被正确解析,你的主类将编译并正常运行。