如何管理对servlet-api的依赖?

时间:2011-01-04 09:49:41

标签: java maven-2 guice

我们有一个编译为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
  ...
}

除了将我的模块拆分为两个或三个不同的模块外,还有一个我没想过的简单解决方法吗?

也许最好的解决方案是将此测试仪移至测试代码。

2 个答案:

答案 0 :(得分:3)

如果您想要进行测试,可以使用<scope>test</scope>。但是provided在Eclipse中对我来说很好 - 它被添加到类路径中。

答案 1 :(得分:1)

如果你在m2eclipse中使用eclipse,<scope>provided</scope>将被正确解析,你的主类将编译并正常运行。