Criar uma aplicação Web Java

Concluído

A sua empresa está atualmente a executar várias aplicações Web Java em servidores internos. Para reduzir os altos custos associados à manutenção desses servidores, sua empresa deseja migrar seus aplicativos Web para o Serviço de Aplicativo do Azure.

A sua equipa de desenvolvimento tem experiência em utilizar o Maven para criar aplicações de ambiente de trabalho e já utiliza o Maven para automatizar o processo de criação para os seus projetos de Java. Compreende que o Maven utiliza plug-ins nos projetos para adicionar funcionalidade adicional e quer utilizar um arquétipo para criar uma aplicação Web que possa implementar no Serviço de Aplicações do Azure.

Nesta unidade, irá revisitar como o Maven e os arquétipos podem ajudar a criar aplicações Web Java. Você aprenderá como criar um pequeno aplicativo Web Java e executá-lo localmente. Em seguida, você aprenderá o que adicionar ao arquivo POM (Project Object Model) para habilitar o teste local para seu novo aplicativo.

Utilizar o Maven para automatizar a criação de aplicações Web Java

O Maven é a ferramenta de construção Java mais usada, e você pode usá-la para construir e gerenciar qualquer projeto baseado em Java. A mesma ajuda a simplificar os processos de como os programadores criam projetos de Java através de uma forma padrão de criação de projetos, de uma definição clara do que constitui o projeto, de uma forma fácil de publicar informações do projeto e de partilhar JARs em vários projetos. Os objetivos do Maven são:

  • Facilite o processo de compilação.
  • Migre de forma transparente para novos recursos.
  • Forneça um sistema de construção uniforme.
  • Implementar diretrizes sobre as melhores práticas de desenvolvimento.

O que são arquétipos?

Os criadores do Maven precisavam de uma maneira de fornecer uma prática recomendada consistente a seguir quando os desenvolvedores estruturam novos projetos, e descobriram que há várias semelhanças entre diferentes tipos de projetos. Os criadores usaram essas informações para definir esses tipos de projeto como modelos chamados arquétipos, que o Maven usa para criar o andaime para novos projetos rapidamente. Vários exemplos de arquétipos comuns:

Arquétipo Description
maven-archetype-archetype Gera um projeto de arquétipo
maven-archetype-mojo Gera um plug-in do Maven de exemplo
maven-archetype-plugin Gera um plug-in do Maven
maven-archetype-plugin-site Gera um site de plug-ins do Maven
maven-archetype-quickstart Gera um projeto do Maven
maven-archetype-simple Gera um projeto do Maven simples
maven-archetype-site Gera um site do Maven que demonstra alguns dos tipos de documentos suportados, como APT, XDoc e FML
maven-archetype-site-simple Gera um site do Maven simples
maven-archetype-webapp Gera um projeto de aplicação Web do Maven

No próximo exercício, irá criar uma aplicação Web que poderá implementar no Azure. Por exemplo, para criar um novo aplicativo Web Java usando o Maven, você usaria a seguinte sintaxe:

mvn archetype:generate \
  -DgroupId=com.microsoft.example \
  -DartifactId=MyWebApp \
  -DarchetypeArtifactId=maven-archetype-webapp \
  -DarchetypeVersion=1.4 \
  -DinteractiveMode=false

A execução do comando anterior cria uma estrutura de diretórios de projeto com estes conteúdos:

Captura de tela da pasta do projeto e da hierarquia de arquivos.

O que são ficheiros POM (Project Object Model)?

Um dos componentes fundamentais de um projeto do Maven é um ficheiro POM (Project Object Model), que é um documento XML chamado pom.xml que reside na árvore de diretórios de um projeto. O ficheiro POM contém as propriedades, dependências, fases de criação, plug-ins e objetivos para um projeto. Quando criar a sua aplicação, o Maven tratará da gestão das dependências por si.

O Maven foi concebido com base numa estrutura de plug-ins e adicionar plug-ins a um ficheiro POM é como os programadores definem os objetivos para os seus projetos. Quando executar o Maven, pode executar um objetivo específico com a sintaxe mvn [plugin-name]:[goal-name] e o Maven executará todos os objetivos até o [goal-name] que especificar.

O exemplo a seguir ilustra o conteúdo do arquivo pom.xml que foi gerado pelo mvn archetype:generate comando com o maven-archetype-webapp arquétipo na seção anterior desta unidade.

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.microsoft.example</groupId>
  <artifactId>MyWebApp</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>MyWebApp Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <finalName>MyWebApp</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      ...
    </pluginManagement>
  </build>
</project>

Como adicionar plug-ins a um projeto do Maven

Para adicionar um plug-in ao seu projeto Maven, você precisa adicionar o XML específico para esse plug-in ao arquivo pom.xml . Existem dois plugins úteis que permitem aos desenvolvedores executar aplicativos da web localmente em suas máquinas: Eclipse Jetty e Apache Tomcat. O plug-in do Serviço de Aplicativo do Azure dá suporte a esses dois servidores Web. Para adicionar um desses servidores ao seu projeto, você adicionaria o XML necessário para o plug-in à <plugins> tag .

Por exemplo, para adicionar o plug-in do Tomcat 11, você adicionaria XML como o exemplo a seguir:

<plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven3-plugin</artifactId>
  <version>1.10.13</version>
  <configuration>
    <container>
      <containerId>tomcat11x</containerId>
    </container>
  </configuration>
</plugin>

Nota

Para encontrar um plugin e suas informações relacionadas, você pode pesquisar o Repositório Central em https://search.maven.org/.

Depois de adicionar o XML para o plug-in do Tomcat, o <build> elemento deve ser semelhante ao exemplo a seguir:

  <build>
    <finalName>MyWebApp</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven3-plugin</artifactId>
          <version>1.10.13</version>
          <configuration>
            <container>
              <containerId>tomcat11x</containerId>
            </container>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

Depois de adicionar o plug-in do Tomcat ao seu projeto, você pode usar o seguinte comando Maven para criar o projeto, iniciar o servidor Tomcat e testar seu aplicativo Web:

mvn package cargo:run

Este comando cria seu aplicativo, inicia um servidor Tomcat na porta padrão 8080 e carrega o servidor Tomcat. Para carregar seu aplicativo Web, navegue até http://localhost:8080/MyWebApp (MyWebApp é especificado no <finalName> elemento em pom.xml).

Quando você carrega o aplicativo Web, ele mostra a página de index.jsp padrão da pasta src\webapp do seu projeto.

No próximo exercício, irá criar uma aplicação Web Java com o Maven.