为什么Tomcat会跳过DefaultJarScanner.jarsToSkip中指定的扫描jar

Mat*_*ith 5 bootstrapping tld tomcat7

在catalina.properties中它说:

# List of JAR files that should not be scanned for configuration information
# such as web fragments, TLD files etc. It must be a comma separated list of
# JAR file names.
# The JARs listed below include:
# - Tomcat Bootstrap JARs
# - Tomcat API JARs
# - Catalina JARs
# - Jasper JARs
# - Tomcat JARs
# - Common non-Tomcat JARs
# - Sun JDK JARs
# - Apple JDK JARs
tomcat.util.scan.DefaultJarScanner.jarsToSkip=\
bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\

任何人都可以解释为什么?例如,您必须在libs中包含jstl.jar,但如果它被称为jstl.jar,则会跳过它.我只是不明白跳过它的重点是什么?

Ale*_*exD 10

评论说明了一切:"不应扫描配置信息的文件",即.如果您知道您的罐子没有任何配置信息,请在此处包含它们,因此tomcat不会查看它.

底线是:它将减少tomcat完成启动所需的时间.

它似乎对小型部署不太有用,但请相信我:它确实在数百个jar文件的大型部署产生了巨大的差异.

如果没有包含jar,或者没有要跳过的模式(例如*.jar - 要排除以"a"开头的所有内容),那么所有内容都会被打开,读取,以找出有关配置的信息.

在我工作的公司,我们使用的TC服务器只是一个花哨的Tomcat:没有跳过jar的模式,tc服务器只需要20分钟来扫描jar文件......然后再用10分钟来部署所有内容.

当我们添加模式以跳过99%时,我们能够将服务器启动减少到大约12分钟 - 不完美,但整个事情是巨大的,因此,这是我们接受的交易.