Использование проектов рабочей области с AppEngine - PullRequest
3 голосов
/ 22 февраля 2012

Я пытаюсь использовать проект библиотеки с моим проектом Google AppEngine в качестве проекта на пути сборки.

Есть ли способ включить это в проект AppEngine, не копируя весь источник или не создавая банку?

Я использую только небольшую часть библиотеки, поэтому кажется, что копирование всего jar кажется чрезмерным, и много работы по поиску зависимостей внутри источника, чтобы получить только те части, которые я использую.

Ответы [ 3 ]

4 голосов
/ 20 октября 2013

Я добавил сборщик проектов ant, который копирует файлы классов из зависимого проекта. Файл ant находится в проекте gae и копирует файлы классов из ссылочного проекта. Вот муравей:

<?xml version="1.0" encoding="UTF-8"?>
<project name="CommonsCopy" default="copy" basedir=".">
    <target name="copy">
        <copy todir="war/WEB-INF/classes">
            <fileset dir="../Commons/bin" includes="**/*.class">
            </fileset>
        </copy>
    </target>
</project>

Я назвал его CommonsCopyBuilder.xml, так как он копирует код из общего проекта.

Это скопирует файлы в соответствующее место непосредственно перед запуском проекта.

3 голосов
/ 22 февраля 2012

Вам не понравится этот ответ, но нет.

Чтобы включить библиотеку в качестве зависимости в проект после развертывания, нужная библиотека должна быть найдена в вашем каталоге WEB-INF/lib как jar,Это потребует от вас создания банки на основе библиотеки, которую вы хотите использовать.Другой вариант - сделать так, как вы сказали, вставить зависимый источник в ваш проект и использовать его оттуда.

Во время разработки вы можете сделать проект библиотеки зависимым от вашего проекта движка приложения, выполнив следующие действия:

Under Project->Properties->Java Build Path->Projects Tab
select the "Add.." button to add a subproject to your build.

Примечание. Это не относится к работе в производственной среде.

0 голосов
/ 15 мая 2015

Мне удалось сделать это, создав проект библиотеки «Проект веб-фрагмента» и добавив его в «Сборку развертывания» в свойствах проекта проекта движка приложения.

Однако проект движка приложения, похоже, не работает с нетривиальными структурами зависимостей. В моем случае у меня было два модуля ядра приложения в EAR, оба в зависимости от проекта libary. Однако плагин Google только связал проект библиотеки с одним из модулей, но никогда с обоими одновременно, несмотря на идентичные конфигурации. Очевидно, ошибка.

Мой обходной путь заключался в добавлении связанной исходной папки в проекты механизма приложений, указывая на исходную папку проекта библиотеки. Ужасно, но это делает работу.

...