如先前的回答所述,App EngineSDK支持打包WEB-INF/classes
到jar文件中,该文件将以结尾WEB- INF/lib/_ah_webinf_classes-0000.jar
。你可以激活这个
使用带有选项的appcfg工具--enable_jar_classes
。
通过配置WAR或EAR项目的属性来使用Google Eclipse插件:项目属性> Google App Engine>部署>“将WEB-INF /类打包为jar”
对我而言,在App Engine 1.9.4上,这仅导致实例启动方面的微小改进(约5-10%,如果有的话)。
请注意,这会将 文件打包在WEB-INF / classs中(不仅是.class文件)。更改之后,在实例化过程中收到一条错误消息,内容是不再能够读取logging.properties文件;可能是因为当时尚未读取新的jar文件:
Unable to read the java.util.logging configuration file, WEB- INF/classes/logging.properties
解决方法是,我将appengine-web.xml中的路径更改为,WEB-INF/logging.properties
并配置了maven-war- plugin将文件复制到该位置:
<webResources>
<resource>
<directory>lib</directory>
<targetPath>WEB-INF/lib</targetPath>
</resource>
<resource>
<!-- Workaround: During GAE deployment, all files in WEB-INF/classes will be packaged into WEB-INF/lib/_ah_webinf_classes-0000.jar,
which prevents the logging.properties referenced in appengine-web.xml from being read. -->
<directory>src/main/resources</directory>
<includes>
<include>logging.properties</include>
</includes>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>