将JAR设置为跳过以加速Tomcat 7 maven插件启动

时间:2015-04-10 05:42:51

标签: java performance maven tomcat servlet-3.0

是否有一种简单的方法(例如,直接来自 tomcat7-maven-plugin 配置)来指定在Tomcat启动期间应该跳过哪些JAR以加快速度?

Tomcat 7文档鼓励使用系统属性org.apache.catalina.startup.ContextConfig.jarsToSkip(请参阅http://wiki.apache.org/tomcat/HowTo/FasterStartUp#JAR_scanning),但是从maven配置设置时,它不起作用。

1 个答案:

答案 0 :(得分:4)

在检查 tomcat7-maven-plugin 的来源后,我找到了一种解决方法来实现jars跳过。 (但它可能会停止使用Maven Tomcat 7插件的未来版本。)

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <path>/${project.artifactId}</path>
                <port>8080</port>
                <systemProperties>
                    <org.apache.catalina.startup.ContextConfig.jarsToSkip>*</org.apache.catalina.startup.ContextConfig.jarsToSkip>
                    <!-- work around .. see: https://issues.apache.org/jira/browse/MTOMCAT-281 -->
                    <catalina.config>${project.baseUri}/target/tomcat/logs</catalina.config>
                </systemProperties>
            </configuration>
        </plugin>

如相关错误(https://issues.apache.org/jira/browse/MTOMCAT-281)中所述,问题在于Tomcat使用tomcat-embed-core-7.0.47.jar!/org/apache/catalina/startup/catalina.properties中的属性盲目地覆盖所有系统属性。因此,将覆盖插件配置中指定的org.apache.catalina.startup.ContextConfig.jarsToSkip系统属性的值。