К сожалению, муравьиная задача IMO - единственный способ сделать это.Вы можете снять флажки с datanucleous в конфигурации плагина, как предложил Ikay, но
- он не работает в моей новой установке Eclipse Juno + 1.7.0 GAE
- Я использую Objectify и одинбанок действительно нужен (geronimo, не уверен, что удаляет его, хотя по причине 1)
- он не удаляет банку конечных точек, которая огромна и бесполезна для большинства приложений на gae
Итак, я положил все библиотеки времени выполнения в отдельную папку (могу сделать это наоборот и сохранил список исключений) и написал простой скрипт:
<target name="pre-deploy">
<delete dir="deploy" />
<mkdir dir="deploy" />
<copy todir="deploy">
<fileset dir="war"/>
</copy>
<delete>
<fileset dir="deploy/WEB-INF/lib/" includes="*.jar"/>
</delete>
<copy todir="deploy/WEB-INF/lib">
<fileset dir="lib/runtime"/>
</copy>
<!-- pack all classes into single jar for faster gae instance startup -->
<jar destfile="deploy/WEB-INF/lib/myjar.jar" basedir="deploy/WEB-INF/classes" />
<!-- delete classes (but not properties!) -->
<delete dir="deploy/WEB-INF/classes/com" />
</target>
Он также полезен какпозволяет упаковать все классы в одну банку, о которой многие сообщают, экономит время запуска.Сценарий развертывания прост:
<import file="${gae.sdk}/config/user/ant-macros.xml" />
<target name="deploy" depends="pre-deploy">
<appcfg action="update" war="war" />
</target>