在 运行 时间网络应用程序如何使用 servlet-api.jar,这在项目的 pom.xml 中是不同的?
How during run time web-application uses servlet-api.jar which is different in project's 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
将是"provided" 由容器。我很清楚。
我的疑问是,在 tomcat 中,此依赖项的名称只是 servlet-api.jar
并且没有版本信息;而在 pom.xml 中我们也提到了版本名称,因此 jar 文件的有效名称变为 servlet-api-2.5.jar
.
所以在 tomcat 的 运行 时间,它不查找 jar 文件的确切名称吗?怎么能运行?
任何解释都会有很大帮助。
您的 Web 应用 运行 在 Tomcat 上 不会 查找特定的 JAR 文件(按名称或其他任何方式)。
相反,它将使用类路径来发现 类。
那些 类 是否从名为 servlet-api-2.5.jar
的 JAR 文件或名为 servlet-api.jar
的 JAR 文件添加到类路径在运行时是无关紧要的。
我使用 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
将是"provided" 由容器。我很清楚。
我的疑问是,在 tomcat 中,此依赖项的名称只是 servlet-api.jar
并且没有版本信息;而在 pom.xml 中我们也提到了版本名称,因此 jar 文件的有效名称变为 servlet-api-2.5.jar
.
所以在 tomcat 的 运行 时间,它不查找 jar 文件的确切名称吗?怎么能运行?
任何解释都会有很大帮助。
您的 Web 应用 运行 在 Tomcat 上 不会 查找特定的 JAR 文件(按名称或其他任何方式)。
相反,它将使用类路径来发现 类。
那些 类 是否从名为 servlet-api-2.5.jar
的 JAR 文件或名为 servlet-api.jar
的 JAR 文件添加到类路径在运行时是无关紧要的。