В этом блоге рассказывается, как мы можем создать проект веб-приложения с помощью Gradle .
Если быть более точным, мы хотим создать проект веб-приложения, использующего Java, упаковать наше веб-приложение в файл WAR и запустить наше веб-приложение в среде разработки.
Давайте выясним, как мы можем выполнить эти требования.
Дополнительное чтение:
Если вы не знакомы с Gradle, вам следует прочитать следующее сообщение в блоге, прежде чем продолжить чтение этого сообщения в блоге:
- Начало работы с Gradle: Введение поможет вам установить Gradle, описывает основные концепции сборки Gradle и описывает, как вы можете добавить функциональность в свою сборку с помощью плагинов Gradle.
- Начало работы с Gradle: наш первый Java-проект описывает, как вы можете создать проект Java с помощью Gradle и упаковать свое приложение в исполняемый файл JAR.
- Начало работы с Gradle: Управление зависимостями описывает, как вы можете управлять зависимостями вашего проекта Gradle.
Создание проекта веб-приложения
Если мы хотим создать проект веб-приложения, использующего Java и Gradle, первое, что нам нужно сделать, — это создать проект Java. Посмотрим, как мы можем это сделать.
Создание проекта Java
Мы можем создать проект Java, применив плагин Java . Мы можем сделать это, добавив следующую строку в файл build.gradle :
1
|
apply plugin: 'java' |
Плагин Java добавляет новые соглашения (например, расположение каталогов по умолчанию), задачи и свойства в нашей сборке. Если вы хотите узнать больше об этом, вы должны прочитать следующее сообщение в блоге:
Давайте продолжим и узнаем, как мы можем упаковать наше веб-приложение.
Упаковка нашего веб-приложения
Прежде чем мы сможем упаковать наше веб-приложение с помощью плагина War , мы должны добавить его в нашу сборку. После того, как мы применили плагин War, файл build.gradle выглядит следующим образом:
1
2
|
apply plugin: 'java' apply plugin: 'war' |
Плагин War добавляет новый каталог в макет каталога проекта, добавляет две новые конфигурации управления зависимостями и добавляет новую задачу в наш проект. Эти изменения описаны ниже:
- Плагин War добавляет каталог src / main / webapp в макет каталога проекта. Этот каталог содержит источники веб-приложения (файлы CSS, файлы Javascript, файлы JSP и т. Д.).
- Плагин War добавляет две новые конфигурации управления зависимостями, которые называются обеспечитьCompile и предоставлено Runtime . Эти две две конфигурации имеют ту же область действия, что и конфигурации компиляции и среды выполнения , но различие заключается в том, что зависимости, принадлежащие этим новым конфигурациям, не добавляются в архив WAR.
- Плагин War также добавляет задачу войны в наш проект веб-приложения. Эта задача собирает архив WAR в каталог build / libs .
Дополнительное чтение:
Если вы не знаете, что такое конфигурация компиляции и среды выполнения , вам следует прочитать следующее сообщение в блоге:
Теперь мы можем упаковать наше веб-приложение, запустив команду gradle war в командной строке. Когда мы сделаем это, мы должны увидеть следующий результат:
1
2
3
4
5
6
7
8
9
|
> gradle war :compileJava :processResources :classes :war BUILD SUCCESSFUL Total time : 4.937 secs |
Если все прошло как ожидалось, мы должны найти файл web-application.war в каталоге build / libs .
Замечания:
Если вам нужна дополнительная информация о плагине войны или
Военное задание, или вы хотите переопределить стандартную конфигурацию подключаемого модуля War или военного задания, вам следует более подробно рассмотреть следующие веб-страницы:
Давайте выясним, как мы можем запустить наше веб-приложение в среде разработки.
Запуск нашего веб-приложения
Мы можем запустить наше веб-приложение в среде разработки с помощью Gretty . Он поддерживает Jetty и Tomcat и не страдает от проблемы, вызванной утечкой привязок SLF4J от Gradle . Давайте продолжим и сконфигурируем нашу сборку для запуска нашего веб-приложения с Gretty.
Сначала нам нужно настроить зависимости нашего скрипта сборки. Мы можем сделать это, выполнив следующие действия:
- Сконфигурируйте сценарий сборки для использования репозитория Bintray JCenter Maven, когда он разрешает свои зависимости.
- Добавьте зависимость плагина Gretty к пути к классу сценария сборки.
Исходный код файла build.gradle выглядит следующим образом:
01
02
03
04
05
06
07
08
09
10
11
|
buildscript { repositories { jcenter() } dependencies { classpath 'org.akhikhl.gretty:gretty:+' } } apply plugin: 'java' apply plugin: 'war' |
Если вы хотите узнать больше об использовании бинарных плагинов, которые были опубликованы в виде jar-файлов, вам следует прочитать следующие разделы Руководства пользователя Gradle:
Во-вторых , мы должны применить плагин Gretty. После того, как мы это сделали, файл build.gradle выглядит следующим образом:
01
02
03
04
05
06
07
08
09
10
11
12
|
buildscript { repositories { jcenter() } dependencies { classpath 'org.akhikhl.gretty:gretty:+' } } apply plugin: 'java' apply plugin: 'war' apply plugin: 'org.akhikhl.gretty' |
В-третьих , нам нужно настроить Gretty, выполнив следующие действия:
- Сконфигурируйте Gretty для использования Jetty 9 в качестве контейнера сервлета при запуске нашего веб-приложения.
- Настройте Jetty для прослушивания порта 8080.
- Сконфигурируйте Jetty для запуска нашего веб-приложения, используя контекстный путь «/».
Исходный код файла build.gradle выглядит следующим образом:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
buildscript { repositories { jcenter() } dependencies { classpath 'org.akhikhl.gretty:gretty:+' } } apply plugin: 'java' apply plugin: 'war' apply plugin: 'org.akhikhl.gretty' gretty { port = 8080 contextPath = '/' servletContainer = 'jetty9' } |
Если вы хотите узнать больше о Gretty, вам следует внимательнее взглянуть на ее документацию:
Теперь мы можем запустить и остановить наше веб-приложение, выполнив в командной строке следующие команды:
- команда gradle appStart запустит наше веб-приложение.
- Команда gradle appStop остановит наше веб-приложение.
Давайте продолжим и подведем итог тому, что мы узнали из этого блога.
Резюме
Этот пост научил нас четырем вещам:
- Мы узнали, что если мы используем конфигурацию по умолчанию, мы должны поместить исходные тексты нашего веб-приложения в каталог src / main / webapp .
- Мы узнали, что плагин War добавляет две новые конфигурации зависимостей ( обеспечить компиляцию и предоставил время выполнения ) в нашу сборку, и мы узнали, как работают эти конфигурации зависимостей.
- Мы научились упаковывать наше веб-приложение в файл WAR.
- Мы научились запускать наше веб-приложение в среде разработки.
PS Вы можете получить пример приложения к этому сообщению в блоге от Github .
Если вы хотите узнать, как использовать Gradle, вы должны взглянуть на мой учебник Gradle .
Ссылка: | Начало работы с Gradle: создание проекта веб-приложения от нашего партнера JCG |