Удалить банки GAE, скопированные GPE - PullRequest
3 голосов
/ 13 декабря 2011

Мне нужно только два jar, связанных с движком приложения (точнее, appengine-api-1.0-sdk-1.6.0.jar и appengine-api-labs-1.6.0.jar) в моем WEB-INF/lib, но плагин Google для Eclipse (GPE) копирует дюжину jar, таких как те, которые используются для JDO, кэша и т. Д.который мне действительно не нужен (чтобы поддерживать развертывание и контроль версий).Если я удаляю их из WEB-INF/lib, GPE продолжает жаловаться и копирует их обратно.

То же самое обсуждалось ранее , но предлагается написать задачу Ant для удаления этих jar-файлов, что я действительноне хочу делать (так как я не использую в своем проекте ant build.xml).

У кого-нибудь есть лучшее решение?Я больше из Netbeans / Maven, но мне нужно использовать Eclipse здесь для простоты и официально поддерживаемого плагина.Все только что установлено.

Ответы [ 2 ]

3 голосов
/ 10 января 2012

В новом плагине Google для Eclipse есть опция, позволяющая удалять файлы Jar Datanucleus.Это удаляет около 5-6 файлов JAR.Если вы не видите приведенный ниже экран, вам следует обновить свой плагин Google для версии Eclipse:

enter image description here

Развертывание не является проблемой, поскольку при развертывании SDK проверяетхэши файлов в вашей локальной файловой системе, сравнивают их с хешами на серверах Google и загружают только файлы, которые были изменены.

0 голосов
/ 09 июля 2012

К сожалению, муравьиная задача IMO - единственный способ сделать это.Вы можете снять флажки с datanucleous в конфигурации плагина, как предложил Ikay, но

  1. он не работает в моей новой установке Eclipse Juno + 1.7.0 GAE
  2. Я использую Objectify и одинбанок действительно нужен (geronimo, не уверен, что удаляет его, хотя по причине 1)
  3. он не удаляет банку конечных точек, которая огромна и бесполезна для большинства приложений на 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>
...