Maven编译依赖项不在POM中

时间:2020-11-11 15:07:59

标签: java maven servlets pom.xml

我正在尝试从工作中构建一个Maven项目,该项目具有servlet-api 3.1.0作为提供的依赖项:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>

但是随后无法编译,因为它无法从getRequestURL()中找到javax.servlet.http.HttpServletRequest

后来,我发现它使用的是旧版本的servlet-api,我从未包含在我的POM中:

Downloading from central: https://repo.maven.apache.org/maven2/javax/servlet/servlet-api/2.2/servlet-api-2.2.jar
Downloaded from central: https://repo.maven.apache.org/maven2/javax/servlet/servlet-api/2.2/servlet-api-2.2.jar (41 kB at 63 kB/s)

也许该servlet-api版本来自一种依赖关系,但是我不知道从哪个依赖关系中获取很多。

如何用在项目的POM中添加的版本覆盖该版本?

1 个答案:

答案 0 :(得分:1)

您可以尝试几件事。

  1. 尝试使用mvn依赖项:tree来查看它是否作为另一个依赖项的一部分被下载。

  2. 如果您没有看到该依赖项作为另一个依赖项的一部分被下载,请清理您的本地存储库(它可能位于.m2目录中)并进行应用程序的全新安装。

  3. 您还可以共享pom.xml,以便其他人可以查看并获得帮助。