Каковы лучшие практики создания файлов войны (с использованием eclipse) для запуска на tomcat? руководства, ссылки, примеры высоко ценятся.
Вы можете использовать Ant для настройки, компиляции, WAR и развертывания вашего решения.
<target name="default" depends="setup,compile,buildwar,deploy"></target>
Затем вы можете одним щелчком мыши выполнить в Eclipse эту цель Ant. Вот примеры каждого из шагов:
Мы предполагаем, что ваш код организован следующим образом:
${basedir}/src
: Файлы Java, свойства, файлы конфигурации XML${basedir}/web
: Ваши файлы JSP${basedir}/web/lib
: Любые JAR, необходимые во время выполнения${basedir}/web/META-INF
: Ваш манифест${basedir}/web/WEB-INF
: Ваши файлы web.xmlОпределите setup
задачу, которая создает каталог распространения и напрямую копирует любые артефакты, которые необходимо использовать WARred:
<target name="setup">
<mkdir dir="dist" />
<echo>Copying web into dist</echo>
<copydir dest="dist/web" src="web" />
<copydir dest="dist/web/WEB-INF/lib" src="${basedir}/../web/WEB-INF/lib" />
</target>
Соберите свои Java-файлы в классы и скопируйте любые артефакты, не относящиеся к Java, которые находятся внутри, src
но должны быть доступны во время выполнения (например, свойства, файлы XML и т. Д.):
<target name="compile">
<delete dir="${dist.dir}/web/WEB-INF/classes" />
<mkdir dir="${dist.dir}/web/WEB-INF/classes" />
<javac destdir="${dist.dir}/web/WEB-INF/classes" srcdir="src">
<classpath>
<fileset dir="${basedir}/../web/WEB-INF/lib">
<include name="*" />
</fileset>
</classpath>
</javac>
<copy todir="${dist.dir}/web/WEB-INF/classes">
<fileset dir="src">
<include name="**/*.properties" />
<include name="**/*.xml" />
</fileset>
</copy>
</target>
Создайте саму ВОЙНУ:
<target name="buildwar">
<war basedir="${basedir}/dist/web" destfile="My.war"
webxml="${basedir}/dist/web/WEB-INF/web.xml">
<exclude name="WEB-INF/**" />
<webinf dir="${basedir}/dist/web/WEB-INF/">
<include name="**/*.jar" />
</webinf>
</war>
</target>
Наконец, вы можете настроить задачу для развертывания WAR прямо в месте развертывания Tomcat:
<target name="deploy">
<copy file="My.war" todir="${tomcat.deploydir}" />
</target>
Как только все это настроено, простой запуск default
цели из Eclipse скомпилирует WAR и развернет ваше решение.
Преимущество этого подхода в том, что он будет работать как вне Eclipse, так и внутри Eclipse, и его можно использовать для простого обмена вашей стратегией развертывания (например, через систему контроля версий) с другими разработчиками, которые также работают над вашим проектом.
Я всегда просто выбирал Экспорт из Eclipse. Он создает файл войны и включает все необходимые файлы. Если вы создали проект как веб-проект, это все, что вам нужно сделать. Eclipse делает это очень простым.
источник
Мы используем Maven (старший брат Ant) для всех наших java-проектов, и у него есть очень изящный плагин WAR. Здесь можно найти учебные материалы и их использование.
Это намного проще, чем Ant, полностью совместим с Eclipse (используйте maven eclipse: eclipse для создания проектов Eclipse) и прост в настройке.
Домашняя страница Maven
Плагин Maven WAR
Пример конфигурации:
источник
War-файл - это просто jar-файл с расширением war, но он работает именно так, как на самом деле структурировано содержимое.
Учебник J2EE / Java EE может стать началом:
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents3.html
И спецификация сервлета содержит кровавые детали:
http://java.sun.com/products/servlet/download.html
Если вы создаете новый веб-проект в Eclipse (я имею в виду версию Java EE), структура создается для вас, и вы также можете указать ей, где установлен ваш сервер приложений, и он развернет и запустит приложение за вас.
Использование опции «Экспорт-> WAR-файл» позволит вам сохранить военный файл.
источник
Если вы не знаете, что делать, и начинаете с нуля, Maven поможет вам начать работу.
Выполнив следующие шаги, вы можете идеально настроить новый военный проект в eclipse.
mvn archetype:generate
mvn eclipse:eclipse
mvn package
или развернув ее, настроив сервер в eclipse и просто добавив проект на сервер.Как говорили некоторые другие, обратная сторона использования maven заключается в том, что вы должны использовать соглашения maven. Но я думаю, что если вы только начинаете, изучение условных обозначений - хорошая идея, прежде чем вы начнете создавать свои собственные. Ничто не помешает вам изменить / провести рефакторинг на ваш собственный предпочтительный метод позже.
Надеюсь это поможет.
источник
Используйте задание Ant War
источник
Используйте код сборки ant, который я использую для своего проекта SMS
источник
Другой вариант - создать его автоматически с помощью Eclipse. Конечно, если у вас есть среда непрерывной интеграции, рекомендуется Ant или Maven. Альтернатива экспорта не очень удобна, потому что вам нужно каждый раз настраивать свойства экспорта.
ШАГИ:
Включить поддержку «Архивов проектов»; это может зависеть от вашего проекта (я использовал его в проекте Java EE / Web). Щелкните правой кнопкой мыши корневой каталог проекта; Настроить -> Добавить поддержку архивов проектов.
Идите и создайте новый архив в верхнем каталоге «Архивы проекта». У вас есть только опция jar, но вы называете архив * .war.
Настройте Fileset-ы, то есть какие файлы должны быть включены. Обычно настраиваются два набора файлов аналогично настройке сборки веб-развертывания (свойство проекта).
Возможно, вам потребуется настроить свойство exclude набора файлов в зависимости от того, где вы разместили некоторые из файлов конфигурации, или вам может потребоваться больше наборов файлов, но идея состоит в том, что после настройки этого параметра вам не нужно его изменять.
Собрать архив вручную или опубликовать прямо на сервере; но также автоматически создается для вас Eclipse
источник
Другой распространенный вариант - gradle.
http://www.gradle.org/docs/current/userguide/application_plugin.html
Чтобы создать файл войны в веб-приложении:
В build.gradle добавьте:
Затем:
Используйте макет из принятого ответа выше.
источник
Используйте следующую команду вне папки WEB-INF. Это должно создать ваш файл войны, и это самый быстрый способ, который я знаю.
(Вам потребуется установленный JDK 1.7+ и переменные среды, указывающие на каталог bin вашего JDK.)
Ссылка Ссылка
источник
Более простое решение, которое также обновляет рабочее пространство Eclipse:
источник
Упрощенный код оболочки для создания файлов WAR из стандартного динамического веб-проекта Eclipse. Использует файловую систему RAM (/ dev / shm) на платформе Linux.
источник
** Создание файла War в Eclips Gaynemed веб-проекта grails **
1. Импорт проекта:
2.Измените файл datasource.groovy.
Как это: url = "jdbc: postgresql: //18.247.120.101: 8432 / PGMS"
2. изменить AppConfig.xml
3. убить Java из диспетчера задач:
запустить чистую команду в eclips
запустите 'prod war' по названию проекта.
Проверьте файл журнала и найдите тот же файл .war в каталоге рабочей среды с той же датой.
источник