Автоматически копировать новый файл Jar в папку проекта WEB-INF / lib проекта Tomcat - PullRequest
1 голос
/ 17 мая 2010

Я занимаюсь разработкой приложения Tomcat (на самом деле это приложение Red5, но по сути это то же самое).

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

Недавно я вытащил пакет из проекта приложения и преобразовал его в отдельный проект Jar, который затем был выпущен как открытый исходный код (он находится в той же рабочей области).

Что я хочу, так это чтобы при создании моего приложения Tomcat Eclipse автоматически извлекал последнюю версию Jar, которую я встроил, в свою папку / WebContent / WEB-INF / lib.

Это поведение, которое вы получаете с .NET, когда ссылаетесь на один проект из другого, и я думаю, именно поэтому я ожидал найти какой-то способ сделать это.

На данный момент мне приходится вручную копировать / вставлять Jar-файл при каждом его создании.

Конечно, в идеале, когда я собираю свое приложение Tomcat, оно автоматически определяет, был ли обновлен проект Jar, и создает его, если нет.

Любые предложения, полученные с благодарностью.

Ответы [ 3 ]

2 голосов
/ 18 мая 2010

Я пытался сделать это сейчас - и у меня почти все заработало. У меня есть 3 библиотеки классов, которые я хочу найти в каталоге WEB-INF / lib, поэтому я создал собственные правила построителя Ant для каждого из проектов eclipse библиотеки классов, чтобы каждый раз создавать проект lib / classlib .jar изменение источников (найдите «Создание файла сборки Ant для сборщика проектов» в справке Eclipse).

Затем я добавил каждый из этих jar-файлов (недостаточно просто добавить ссылки на проект) в раздел «Зависимости модуля Java EE» веб-проекта.

При экспорте веб-проекта они появятся в файле .war. Я не нашел способа вставить их в него без необходимости экспорта (я хочу отлаживать на месте, а не развертывать файл .war).

Я должен согласиться с systempuntoout, что наиболее вероятным решением является использование Ant Builder.

Редактировать: Задачи копирования Ant работают. Добавьте файл с именем copylibs.xml в корневой каталог веб-проекта:

<?xml version="1.0" encoding="UTF-8"?>
<project name="copylibs" default="copylibs" basedir=".">

    <target name="copylibs" description="Copy dependent jar files">
        <copy file="../com-aaaa-util/lib/com-aaaa-util.jar" todir="webroot/WEB-INF/lib/" />
        <copy file="../com-aaaa-mnp/lib/com-aaaa-mnp.jar" todir="webroot/WEB-INF/lib/" />
        <copy file="../com-aaaa-bbbb/lib/com-aaaa-bbbb.jar" todir="webroot/WEB-INF/lib/" />
    </target>
</project>

Затем добавьте Ant Builder, чтобы сделать это во время сборки.

1 голос
/ 17 мая 2010

Я бы пошел с инструментами сборки, такими как:
1. Муравей с использованием Задачи файла
2. Maven .

0 голосов
/ 17 мая 2010

Вы можете настроить Eclipse WTP для автоматической сборки веб-приложения прямо из рабочей области Eclipse без копирования jar-файлов. Таким образом, ваши изменения в зависимом проекте будут немедленно отражены в развернутом веб-приложении.

В качестве альтернативы вы можете использовать скрипт Ant или Maven для копирования файлов в любое место. С Maven вы получаете его бесплатно без написания скриптов и дополнительных настроек.

...