Мне нужен Eclipse для развертывания файла WAR, который собирает мой скрипт ANT, а не того, что он строит внутри - PullRequest
3 голосов
/ 24 ноября 2010

Я использую Eclipse Helios. У меня запущен динамический веб-проект, и я настроил Eclipse для использования Ant Builder для создания файла WAR. Это все работает отлично; если я изменяю файл .java, Eclipse автоматически запускает мой build.xml через Ant и обновляет мою WAR. Если я разверну WAR-файл на внешнем экземпляре Tomcat, он будет отлично работать.

Однако, когда я приказываю Eclipse запустить мой проект под Tomcat, он не использует файл WAR, сгенерированный сборкой Ant, или мой сценарий Ant для создания временного WAR.

Я знаю это, потому что мой скрипт build.xml включает некоторые дополнительные файлы конфигурации XML в WEB-INF / classes в WAR, которые не попадают в каталог WEB-INF / classes, который выдвигает Eclipse.

Я не могу найти что-то в Eclipse, которое говорит: "когда вы публикуете, используйте этот WAR-файл вместо создания своего собственного".

Альтернативным подходом было бы сообщить Tomcat, когда он собирает WAR, сделать это, добавив список файлов, но я, похоже, тоже не могу найти способ сделать это.

Мне также любопытно, как Eclipse знает, что публиковать, поскольку он явно игнорирует мой build.xml и мой ранее созданный WAR-файл.

Ответы [ 2 ]

6 голосов
/ 24 ноября 2010

Eclipse развертывает веб-приложение, просматривая параметры сборки веб-развертывания для вашего проекта. Это можно увидеть, щелкнув правой кнопкой мыши по проекту, выбрав «Свойства», а затем нажмите «Сборка развертывания». Eclipse обычно использует развертывание расширенного каталога здесь, а не создание и развертывание WAR (это основано на используемом плагине сервера, но я думаю, что большинство из них используют расширенную структуру каталогов для скорости). Если вы экспортируете как WAR, он создаст WAR с тем же содержимым.

Есть два основных способа сделать то, что вы хотите:

  • Измените параметры сборки веб-развертывания, чтобы они точно соответствовали требованиям развернутого приложения

  • Не использовать развертывание Eclipse; добавьте «Внешний Ant Ant Builder» к опциям «Builders» для вашего проекта (щелкните правой кнопкой мыши проект, выберите «Свойства-> Builders»). Затем вы можете выбрать, какие цели в файле ant вы хотите использовать, когда eclipse создает проект. Одним из этих вариантов может быть этап развертывания

0 голосов
/ 02 марта 2015

Я не могу найти что-то в Eclipse, которое говорит "когда вы публикуете, используйте этот WAR-файл вместо создания своего собственного".

Я пользователь IntelliJ,так что возьми это с крошкой соли.Но ...

Щелкните правой кнопкой мыши на цели Project Explorer / foo.war и выберите Mark Deployable.

Затем снова щелкните правой кнопкой мыши файл foo.war и выберите Запуск от имени ... -> Запуск на сервере ...

Выберите экземпляр JBoss.

Если вы перейдете в представление «Серверы», вы увидите файл WAR под экземпляром JBoss как /proj_root/target/foo.war

Oh Eclipseвздох ...

...