Как указано в более раннем ответе , SDK App Engine поддерживает упаковку WEB-INF/classes
в файл jar, который в итоге будет иметь значение WEB-INF/lib/_ah_webinf_classes-0000.jar
. Вы можете активировать это
с помощью инструмента appcfg с параметром --enable_jar_classes
.
с использованием плагина Google для Eclipse путем настройки свойств проекта WAR или EAR: Свойства проекта> Google App Engine> Развертывание> «Пакет WEB-INF / classes как jar»
Для меня в App Engine 1.9.4 это привело к незначительному улучшению раскрутки экземпляров (около 5-10%, если есть).
Обратите внимание, что при этом будут упакованы все файлы в классах WEB-INF / (не только в .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>