微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Maven编译依赖项不在POM中

如何解决Maven编译依赖项不在POM中

我正在尝试从工作中构建一个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. 尝试使用mvn依赖项:tree来查看它是否作为另一个依赖项的一部分被下载。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。