Erstellen einer Java-Web-App

Abgeschlossen

Ihr Unternehmen führt derzeit mehrere Java-Web-Apps auf internen Servern aus. Um die hohen Kosten für die Aufrechterhaltung dieser Server zu reduzieren, möchte Ihr Unternehmen Ihre Web-Apps zu Azure App Service migrieren.

Ihr Entwicklungsteam verfügt über Erfahrung bei der Verwendung von Maven zum Erstellen von Desktop-Apps, und Sie verwenden Maven bereits, um den Buildprozess für Ihre Java-Projekte zu automatisieren. Sie wissen, dass Maven Plug-Ins für Projekte verwendet, um zusätzliche Funktionen hinzuzufügen, und Sie möchten einen Archetyp verwenden, um eine Web-App zu erstellen, die Sie in Azure App Service bereitstellen können.

In dieser Lektion erfahren Sie, wie Maven und Archetypen beim Erstellen von Java-Web-Apps helfen können. Sie erfahren, wie Sie eine kleine Java-Web-App erstellen und lokal ausführen. Anschließend erfahren Sie, was Sie der POM-Datei (Project Object Model) hinzufügen können, um lokale Tests für Ihre neue App zu ermöglichen.

Verwenden von Maven zum Automatisieren der Erstellung von Java-Web-Apps

Maven ist das am häufigsten verwendete Java-Buildtool, und Sie können es zum Erstellen und Verwalten von Java-basierten Projekten verwenden. Es trägt dazu bei, die Prozesse zu optimieren, indem Entwickler Java-Projekte mit einer standardisierten Methode zum Erstellen der Projekte, einer klaren Definition der Projektinhalte, einer unkomplizierten Möglichkeit zur Veröffentlichung von Projektinformationen und einer Methode zum Teilen von JARs über mehrere Projekte hinweg erstellen können. Maven hat folgende Ziele:

  • Vereinfachen Sie den Buildprozess.
  • Transparent zu neuen Features migrieren.
  • Bereitstellen eines einheitlichen Buildsystems.
  • Implementieren Sie Richtlinien zu bewährten Methoden in der Entwicklung.

Was sind Archetypen?

Mavens Schöpfer benötigten eine Möglichkeit, eine konsistente bewährte Methode zu bieten, um zu folgen, wenn Entwickler neue Projekte strukturieren, und sie entdeckten, dass es mehrere Ähnlichkeiten zwischen verschiedenen Arten von Projekten gibt. Die Ersteller verwendeten diese Informationen, um diese Projekttypen als Vorlagen als Archetypen zu definieren, die Maven verwendet, um das Gerüst für neue Projekte schnell zu erstellen. Hier sind mehrere Beispiele für allgemeine Archetypen:

Archetyp BESCHREIBUNG
maven-archetype-archetype Generiert ein Archetypprojekt
maven-archetype-mojo Generiert ein Maven-Beispiel-Plug-In
maven-archetype-plugin Generiert ein Maven-Plug-In
maven-archetype-plugin-site Generiert eine Maven-Plug-In-Website
maven-archetype-quickstart Generiert ein Maven-Projekt
maven-archetype-simple Generiert ein einfaches Maven-Projekt
maven-archetype-site Generiert eine Maven-Website, die einige der unterstützten Dokumenttypen wie APT, XDoc und FML veranschaulicht.
maven-archetype-site-simple Generiert eine einfache Maven-Website
maven-archetype-webapp Generiert ein Maven Web App-Projekt

In der nächsten Übung erstellen Sie eine Web-App, die Sie in Azure bereitstellen können. Um beispielsweise eine neue Java-Web-App mit Maven zu erstellen, verwenden Sie die folgende Syntax:

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

Wenn Sie den vorstehenden Befehl ausführen, wird eine Projektverzeichnisstruktur mit den folgenden Inhalten erstellt:

Screenshot des Projektordners und der Dateihierarchie.

Was sind POM-Dateien (Project Object Model) ?

Eine der Hauptkomponenten eines Maven-Projekts ist eine POM-Datei (Project Object Model), bei der es sich um ein XML-Dokument mit dem Namen pom.xml handelt, das sich in der Verzeichnisstruktur eines Projekts befindet. Die POM-Datei enthält die Eigenschaften, Abhängigkeiten, Buildphasen, Plug-Ins und Ziele für ein Projekt. Wenn Sie Ihre Anwendung erstellen, kümmert sich Maven um die Verwaltung der Abhängigkeiten für Sie.

Maven basiert auf einem Plug-In-Framework und das Hinzufügen von Plug-Ins zu einer POM-Datei ist, wie Entwickler Ziele für ihre Projekte definieren. Wenn Sie Maven ausführen, können Sie ein bestimmtes Ziel mithilfe der Syntax mvn [plugin-name]:[goal-name]ausführen, und Maven führt alle Ziele bis zu den [goal-name] von Ihnen angegebenen Zielen aus.

Das folgende Beispiel veranschaulicht die pom.xml Dateiinhalte, die vom mvn archetype:generate Befehl mit dem maven-archetype-webapp Archetyp im vorherigen Abschnitt dieser Einheit generiert wurden.

<?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>

Hinzufügen von Plug-Ins zu einem Maven-Projekt

Um Ihrem Maven-Projekt ein Plug-In hinzuzufügen, müssen Sie der pom.xml-Datei den spezifischen XML-Code für dieses Plug-In hinzufügen. Es gibt zwei nützliche Plug-Ins, mit denen Entwickler Web-Apps lokal auf ihren Computern ausführen können: Eclipse Jetty und Apache Tomcat. Das Azure App Service-Plug-In unterstützt beide Webserver. Um ihrem Projekt einen dieser Server hinzuzufügen, fügen Sie dem Tag den erforderlichen XML-Code für das <plugins> Plug-In hinzu.

Um beispielsweise das Tomcat 11-Plug-In hinzuzufügen, fügen Sie XML wie das folgende Beispiel hinzu:

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

Hinweis

Um ein Plugin und seine zugehörigen Informationen zu finden, können Sie im Zentralen Repository unter https://search.maven.org/ suchen.

Nachdem Sie den XML-Code für das Tomcat-Plug-In hinzugefügt haben, sollte das <build> Element dem folgenden Beispiel ähneln:

  <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>

Nachdem Sie das Tomcat-Plug-In zu Ihrem Projekt hinzugefügt haben, können Sie den folgenden Maven-Befehl verwenden, um das Projekt zu erstellen, den Tomcat-Server zu starten und Ihre Web-App zu testen:

mvn package cargo:run

Dieser Befehl erstellt Ihre App, startet einen Tomcat-Server auf dem Standardport von 8080 und lädt den Tomcat-Server. Um Ihre Web-App zu laden, navigieren Sie zu http://localhost:8080/MyWebApp (MyWebApp wird im Element in <finalName>pom.xmlangegeben).

Wenn Sie die Web-App laden, wird die Standardseite index.jsp aus dem Ordner "src\webapp " Ihres Projekts angezeigt.

In der nächsten Übung erstellen Sie eine Java-Web-App mit Maven.