我有一个springboot项目,它使用org.apache.tomcat中的javax.servlet包。embed:tomcat-ember-core9.0.34. (来自springboot)
我有另一个maven项目(api项目),它使用javax.servlet,但版本为2.3
现在我已经创建了一个父maven项目,其中包括以上两个作为模块的项目。当我单独编译springboot项目时,一切都很好。但是当我编译父项目时,它使用javax.servlet.api版本2.3来编译springboot项目并给出错误,因为springboot使用的方法在2.3中不可用。
如何解决这个问题?
请查找示例源代码here:httpshttp://github.com/abmjunaed/maven-multi-project-error
我已经添加了非常小的代码来重现这个场景,这样您就可以查看和帮助了!
在intellij的外部库中,我可以看到父项目的libs和maven都使用javaxservlet-api:2.3 to 编译springboot项目并给出错误
2条答案
按热度按时间yrefmtwq1#
找到了解决办法,我简直不敢相信!
对springbootstarterweb的依赖性在库项目的依赖性之后,这就是问题的根源。
现在我补充说
Spring启动机web
作为第一依赖和
lib项目
作为第二依赖,一切正常!
tvz2xvvm2#
您应该将javax.servlet依赖项的正确版本放在父模块的pom中。这将覆盖api项目中提到的javax.servlet依赖项。要找到正确的版本,您必须点击并尝试javax.servlet版本,最新的spring引导包应该支持版本2.3。试试看!!