java - 如何弄清楚为什么某些 javax.servlet 依赖项被添加到 Maven 项目中

标签 java eclipse maven servlets

我有一个 Maven 项目。这里我添加了以下依赖

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${javax.servlet.version}</version>
        <scope>provided</scope>
    </dependency>

{javax.servlet.version} 的值为 3.1.0

但是,当我查看 Eclipse 中的 Maven 依赖项时,我发现添加了 servlet-api-2.3.jar。因此,我无法构建我的项目,因为我无法使用 HttpServletRequest.getPart() 方法,该方法仅从 Servlet 3.0 开始可用。

有没有办法弄清楚为什么添加 2.3 版本?

有什么办法可以避免这种情况吗?

最佳答案

在项目资源管理器中,您可以右键单击 pom.xml 文件,然后选择

Open With → Maven POM Editor

然后选择依赖层次结构选项卡。所有显式声明的依赖项都将显示为顶级节点。您可以看到它们所有的传递依赖项,以及它们的传递依赖项等等。

找到要排除的 Artifact 后,可以右键单击该 Artifact ,然后选择排除 Maven Artifact(然后选择将其从项目中排除)。您可以通过选择 pom.xml 选项卡转到您的 pom 文件。你应该看到一些像

<exclusions>
    <exclusion>
        <artifactId>...</artifactId>
        <groupId>...</groupId>
    </exclusion>
</exclusions>

在依赖于此 Artifact 的依赖项中

关于java - 如何弄清楚为什么某些 javax.servlet 依赖项被添加到 Maven 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314336/

相关文章:

java - 我可以添加打包为 .jar 以外的任何内容的 Maven 依赖项吗?

java - 如何比较各种缓存框架的速度?

java - 当我将报表导出为包含 100,000 个字符的 PDF 格式时,出现 SAXException

java - 如何将我在eclipse中的maven项目导出到war文件

java - 从eclipse的资源文件夹中读取图像而不使用图像名称

maven - 运行gradle时如何覆盖Maven的URL

java - 在java 6中我们需要访问者来进行注释处理吗?

java - 检查单词是否包含数字或特殊字符

java - 如何在 Eclipse 中的类而不是一行上设置断点?

java - Maven super POM 和插件配置