Criar um aplicativo Web Java

Concluído

Atualmente, sua empresa está executando vários aplicativos 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.

Sua equipe de desenvolvimento tem experiência com o uso de Maven para criar aplicativos para desktop e você já usa o Maven para automatizar o processo de build de projetos Java. Você sabe que o Maven usa plug-ins para projetos para adicionar funcionalidade extra e deseja usar um arquétipo para criar um aplicativo Web que pode ser implantado no Serviço de Aplicativo do Azure.

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

Usando Maven para automatizar a criação de aplicativos Web Java

O Maven é a ferramenta de build do Java mais popular, e você pode usá-la para criar e gerenciar qualquer projeto baseado em Java. Ele ajuda a simplificar os processos de como os desenvolvedores criam projetos Java com uma forma padrão de criar os projetos, uma definição clara do que o projeto consistiu, uma forma fácil de publicar informações do projeto e um modo de compartilhar JARs entre vários projetos. As metas do Maven são:

  • Facilite o processo de build.
  • Migre de forma transparente para novos recursos.
  • Forneça um sistema de build uniforme.
  • Implemente diretrizes sobre as práticas recomendadas no desenvolvimento.

O que são arquétipos?

Os criadores do Maven precisavam de uma maneira de fornecer diretrizes de melhores práticas consistentes, a serem seguidas pelos desenvolvedores quando eles 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 scaffolding para novos projetos rapidamente. Estes são vários exemplos de arquétipos comuns:

Arquétipo Descrição
maven-archetype-archetype Gera um projeto de arquétipo
maven-archetype-mojo Gera um plug-in de Maven de exemplo
maven-archetype-plugin Gera um plug-in de Maven
maven-archetype-plugin-site Gera um site de plug-in de Maven
maven-archetype-quickstart Gera um projeto de Maven
maven-archetype-simple Gera um projeto de Maven simples
maven-archetype-site Gera um site de Maven que demonstra alguns dos tipos de documento com suporte, como APT, XDoc e FML
maven-archetype-site-simple Gera um site de Maven simples
maven-archetype-webapp Gera um projeto de aplicativo Web de Maven

No próximo exercício, você criará um aplicativo Web que pode ser implantado no Azure. Por exemplo, para criar um novo aplicativo Web do 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ório de projeto com o seguinte conteúdo:

Screenshot of the project folder and file hierarchy.

O que são arquivos POM (Modelo de Objeto do Projeto)?

Um dos componentes principais de um projeto Maven é um arquivo POM (Modelo de Objeto de Projeto), que é um documento XML chamado pom.xml que reside na árvore de diretórios de um projeto. O arquivo POM contém as propriedades, as dependências, as fases de build, os plug-ins e as metas de um projeto. Quando você compilar o aplicativo, o Maven cuidará do gerenciamento das dependências para você.

O Maven foi criado em uma estrutura de plug-in, na qual os desenvolvedores definem metas para seus projetos adicionando plug-ins a um arquivo POM. Ao executar o Maven, você pode executar uma meta específica usando a sintaxe mvn [plugin-name]:[goal-name] e o Maven executará todas as metas até o [goal-name] que você especificar.

O exemplo a seguir ilustra o conteúdo do arquivo pom.xml que foi gerado pelo comando mvn archetype:generate com o arquétipo maven-archetype-webapp na seçã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 Maven

Para adicionar um plug-in a seu projeto Maven, você precisa adicionar o XML específico para esse plug-in ao arquivo pom.xml. Há dois plug-ins úteis que permitem que os desenvolvedores executem aplicativos Web localmente em seus computadores: o Eclipse Jetty e o Apache Tomcat. O plug-in do Serviço de Aplicativo do Azure dá suporte a ambos os servidores Web. Para adicionar um desses servidores ao seu projeto, você adicionará o XML necessário para o plug-in à marca <build>.

Por exemplo, para adicionar o plug-in 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>  

Observação

Para localizar um plug-in e suas informações relacionadas, você pode pesquisar o Repositório Central em https://search.maven.org/.)

Quando você adiciona o XML do plug-in do Tomcat ao arquivo pom.xml, ele deve se parecer com o 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 seu projeto, você pode usar o seguinte comando do Maven para iniciar o servidor do Tomcat e testar o aplicativo Web:

mvn tomcat7:run

Esse comando compila o aplicativo, inicia um servidor Tomcat na porta padrão 8080 e carrega a página index.jsp da pasta src\webapp do projeto.

No próximo exercício, você criará um aplicativo Web Java usando Maven.