Статьи

Начало работы с Gradle: создание проекта веб-приложения

В этом блоге рассказывается, как мы можем создать проект веб-приложения с помощью Gradle .

Если быть более точным, мы хотим создать проект веб-приложения, использующего Java, упаковать наше веб-приложение в файл WAR и запустить наше веб-приложение в среде разработки.

Давайте выясним, как мы можем выполнить эти требования.

Дополнительное чтение:

Если вы не знакомы с 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.

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

  1. Сконфигурируйте сценарий сборки для использования репозитория Bintray JCenter Maven, когда он разрешает свои зависимости.
  2. Добавьте зависимость плагина 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, выполнив следующие действия:

  1. Сконфигурируйте Gretty для использования Jetty 9 в качестве контейнера сервлета при запуске нашего веб-приложения.
  2. Настройте Jetty для прослушивания порта 8080.
  3. Сконфигурируйте 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 .