Статьи

Простое веб-приложение Gradle

Gradle легко поддерживает веб-приложения на Java с помощью плагинов «war» и «jetty». Из этого туториала вы узнаете, как быстро создать простое веб-приложение на Java-сервлете.

Наша основная структура проекта будет:

01
02
03
04
05
06
07
08
09
10
basic-web
  src
    main
      java
        com
          codetutr
            HelloWorldServlet.java
      webapp
        WEB-INF
          web.xml

Сначала создайте папку с именем basic-web , а затем давайте создадим файл сборки Gradle внутри папки: build.gradle

01
02
03
04
05
06
07
08
09
10
11
12
13
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'eclipse-wtp'
 
repositories {
  mavenCentral()
}
 
dependencies {
  providedCompile 'javax.servlet:servlet-api:2.5'
  runtime 'javax.servlet:jstl:1.1.2'
}

Плагин eclipse-wtp позволяет нам импортировать проект в Eclipse как Dynamic Web Project который при желании можно запустить из Eclipse. Плагин war расширяет плагин java и добавляет поддержку для упаковки файла WAR. Плагин Jetty добавляет задачи для поддержки запуска нашего проекта Gradle во встроенном экземпляре Jetty из нашего файла сборки. Обратите внимание, что мы включаем сервлет-api в качестве зависимости «saidCompile». Это означает, что мы не хотим, чтобы он был упакован в WAR, потому что он будет включен в сервер приложений, на котором он будет работать. Теперь давайте создадим файл дескриптора web.xml в src/main/webapp/WEB-INF : web.xml

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 
  <servlet>
    <display-name>HelloWorldServlet</display-name>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>com.codetutr.HelloWorldServlet</servlet-class>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
 
</web-app>

Мы создали простой сервлет, поддерживаемый com.codetutr.HelloWorldServlet и сопоставленный с «/». Наконец, давайте создадим сервлет в пакете src/main/java com.codetutr : HelloWorldServlet.java

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
package com.codetutr;
 
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class HelloWorldServlet extends HttpServlet {
 
    private static final long serialVersionUID = 1L;
 
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
            throws ServletException, IOException {
        resp.getOutputStream().write("Hello World.".getBytes());
    }
}

Это все. Теперь мы можем запустить сервер Jetty и увидеть наше веб-приложение в действии:

1
2
3
4
5
6
$ gradle jettyRunWar
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:war
:jettyRunWar

Теперь перейдите по адресу http: // localhost: 8080 / basic-web для доступа к сервлету. Вы должны увидеть «Привет, мир». на экране. Полный источник: basic-web.zip Распакуйте архив. Откройте командную строку в неархивированном корне. Типа gradle jettyRunWar . Перейдите по адресу http: // localhost: 8080 / basic-web .

Ссылка: простое веб-приложение Gradle от нашего партнера по JCG Стива Хэнсона в блоге CodeTutr .