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 \
  -DinteractiveMode=false

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

Screenshot of the project folder and file hierarchy.

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 seguinte ilustra o conteúdo do ficheiro pom.xml gerado pelo comando mvn archetype:generate com o arquétipo maven-archetype-webapp na secção anterior desta unidade.

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.microsoft.example</groupId>
  <artifactId>MyWebApp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MyWebApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>MyWebApp</finalName>
  </build>
</project>

Como adicionar plug-ins a um projeto do Maven

Para adicionar um plug-in ao seu projeto do Maven, tem de adicionar o XML específico desse plug-in ao ficheiro 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 à <build> tag .

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

<plugins>
  <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
  </plugin>
</plugins>  

Nota

Para encontrar um plug-in e as informações relacionadas, pode procurar no Repositório Central em https://search.maven.org/.)

Quando adicionar o XML do plug-in do Tomcat ao ficheiro pom.xml, deve assemelhar-se ao seguinte exemplo:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.microsoft.example</groupId>
  <artifactId>MyWebApp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MyWebApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>MyWebApp</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
      </plugin>
    </plugins>  
  </build>
</project>

Depois de adicionar o plug-in do Tomcat ao projeto, pode utilizar o comando seguinte do Maven para iniciar o servidor Tomcat e testar a aplicação Web:

mvn tomcat7:run

Este comando cria a aplicação, inicia um servidor Tomcat na porta 8080 redefinida e carrega a página index.jsp a partir da pasta src\webapp do projeto.

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