在 maven 中使用 httpunit 进行 servlet 测试时,项目类路径中缺少 java ee api

发布于 2024-12-07 07:19:31 字数 845 浏览 1 评论 0 原文

我想使用 maven 运行 此处 提供的 servlet 测试示例。 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。如何解决这个问题?

编辑

这不是 NetBeans 问题,而是 Maven 问题。

I want to run the servlet testing example available here using maven. Javaee web api should be declared as 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>

However, one of the tests in the example throws ServletException. NetBeans complains that java ee api is missing on project classpath. How does one solve this issue?

EDIT

It is not a NetBeans issue, it is a maven issue.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风筝在阴天搁浅。 2024-12-14 07:19:31

现在,这是我在 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 中排列依赖项的声明(请参阅此处的 “为什么”)并将 javaee-web-api 最后。

Now this is the most debilitating issue I have ever faced in my Java days. And it is followed by the most ridiculous workaround I have ever seen, ever:

<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>

Yes, permute the declaration of dependencies in the pom.xml (see here for "why") and make javaee-web-api last.

花开柳相依 2024-12-14 07:19:31

这意味着 maven(或 netbeans...我已经 10 年没有使用过 netbeans)无法下载或在本地存储库中找到该工件。

provided 的范围意味着:我需要 jar 来编译我的源代码,但不要将 jar 捆绑在最终包中。

It means that maven (or netbeans...I haven't used netbeans in 10 years), couldn't download or find that artifact in the local repository.

The scope provided means: I need the jar to compile my source code, but don't bundle the jar in the final package.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文