我想使用maven运行servlet测试示例here。 Javaee web api应声明为provided
:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>httpunit</groupId>
<artifactId>httpunit</artifactId>
<version>1.7</version>
<scope>test</scope>
</dependency>
但是,示例中的一个测试会抛出ServletException
。 NetBeans抱怨java ee api is missing on project classpath
。如何解决这个问题?
修改
这不是NetBeans问题,而是一个maven问题。
答案 0 :(得分:9)
现在这是我在Java时代遇到的最令人虚弱的问题。接下来是我所见过的最荒谬的解决方法:
<dependency>
<groupId>httpunit</groupId>
<artifactId>httpunit</artifactId>
<version>1.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
是的,置换pom.xml
中的依赖关系声明(请参阅此处"why")并最后生成javaee-web-api
。
答案 1 :(得分:0)
这意味着maven(或netbeans ......我在10年内没有使用netbeans),无法下载或在本地存储库中找到该工件。
范围提供意味着:我需要jar来编译我的源代码,但不要将jar包装在最终包中。