Dependencies maven提供的范围 javax.servlet servlet api 2.5 假如

Dependencies maven提供的范围 javax.servlet servlet api 2.5 假如,dependencies,maven,Dependencies,Maven,我在项目的pom.xml中使用依赖项导入。我的问题是我宣布2.5为版本。然而,写一个较低的版本重要吗?例如,我的意思是,如果我的项目使用3.0版本,我写的是2.5版本,将提供吗?(我的意思是,让我们接受2.5是好的,我的项目运行良好,如果我不更改任何其他内容,只是将2.5更改为2.0,是否会导致错误?这取决于情况 一般来说,如果您希望得到一个准确的版本(即使提供了),那么这就是您应该提供的 但是,在某些情况下,您可能需要对版本进行一些调整。话虽如此,我认为有两点: 1) 让您的项目期望一个较低的

我在项目的pom.xml中使用依赖项导入。我的问题是我宣布2.5为版本。然而,写一个较低的版本重要吗?例如,我的意思是,如果我的项目使用3.0版本,我写的是2.5版本,将提供吗?(我的意思是,让我们接受2.5是好的,我的项目运行良好,如果我不更改任何其他内容,只是将2.5更改为2.0,是否会导致错误?

这取决于情况

一般来说,如果您希望得到一个准确的版本(即使提供了),那么这就是您应该提供的

但是,在某些情况下,您可能需要对版本进行一些调整。话虽如此,我认为有两点:

1) 让您的项目期望一个较低的版本,并提供一个较高的版本,这可能是可以的只要较高版本不是主要版本。我建议看一看一个好的开源版本控制模型,比如

2) 让您的项目期望更高的版本而得到更低的版本可能是不合适的。主要原因是,你不能期待那些可能不存在的东西


我希望这会有所帮助。

正确的解决方案是向次要用户声明容器中使用的确切servlet api版本

关键字是提供的:您指定的任何版本都将在编译时用于测试。在运行时,假定由您的运行时容器(例如Jetty)提供

如果实际的运行时库与POM中的声明不同,则会带来麻烦。您是否会遇到问题是版本之间的兼容性问题

Servlet API向后兼容,请参阅:

谢谢。我明白,如果我不使用某些方法,但与它的较低版本不兼容,这没关系。谢谢,你描述得很好,我投赞成票。