spring - 在运行时 web 应用程序如何使用在项目的 pom.xml 中不同的 servlet-api.jar?

标签 spring maven tomcat servlets pom.xml

我使用 Spring MVC 创建了一个简单的 Web 应用程序,pom.xml 中的一个依赖项是:

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

servlet-api 的版本是 2.5,范围为 provided,因此当我在 tomcat 中部署 Web 应用程序时,servlet-api 将由容器“提供”。这对我来说很清楚。

我怀疑在tomcat中,这个依赖的名称只是servlet-api.jar,没有版本信息;而在 pom.xml 中我们也提到了版本名称,因此 jar 文件的有效名称变为 servlet-api-2.5.jar

那么在 tomcat 运行时,它不会查找 jar 文件的确切名称吗?它是如何运行的?

任何解释都会有很大帮助。

最佳答案

您在 Tomcat 上运行的网络应用不会查找特定的 JAR 文件(按名称或其他任何方式)。

相反,它将使用类路径来发现

这些类是从名为 servlet-api-2.5.jar 的 JAR 文件还是从名为 servlet-api.jar 的 JAR 文件添加到类路径中与运行时。

关于spring - 在运行时 web 应用程序如何使用在项目的 pom.xml 中不同的 servlet-api.jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490007/

相关文章:

java - 如何在@Configuration中模拟用@PropertySource注入(inject)的.properties文件?

spring - 使用@Configurable域对象属性根据数据分配特定行为

maven - maven surfire argLine 是否覆盖 ./mvn/jvm.config?

JavaFX 错误 : Class file has wrong version 54, 应该是 52

java - 使用 spring data findAll 从 MongoDB 中检索数据(Example<S> example)

未加载 Maven 传递依赖项

tomcat - 如何使用 auth DIGEST 控制 Tomcat 中的 session 过期

tomcat - IIS ARR : disable or overwrite appended "X-Original-URL" HTTP header from forwarded requests

java - 当容器关闭时 sleep 线程会发生什么?

java - 为什么 Spring 框架不记录 Autowiring Setter 注入(inject)?