Tworzenie aplikacji internetowej w języku Java

Ukończone

Twoja firma obecnie korzysta z kilku aplikacji internetowych Java na wewnętrznych serwerach. Aby zmniejszyć wysokie koszty związane z utrzymywaniem tych serwerów, firma chce migrować aplikacje internetowe do usługi Azure App Service.

Twój zespół programistyczny ma doświadczenie w tworzeniu aplikacji klasycznych przy użyciu narzędzia Maven, a ty już używasz narzędzia Maven do automatyzowania procesu kompilacji dla projektów Java. Rozumiesz, że narzędzie Maven używa wtyczek dla projektów w celu dodania dodatkowych funkcji i chcesz użyć archetypu do utworzenia aplikacji internetowej, którą można wdrożyć w usłudze Azure App Service.

W tej lekcji dowiesz się, jak narzędzia Maven i archetypy mogą pomóc w tworzeniu aplikacji internetowych Java. Dowiesz się, jak utworzyć małą aplikację internetową Java i uruchomić ją lokalnie. Następnie dowiesz się, co należy dodać do pliku Project Object Model (POM) w celu włączenia lokalnego testowania dla nowej aplikacji.

Używanie narzędzia Maven do automatyzowania tworzenia aplikacji internetowych w języku Java

Narzędzie Maven jest najczęściej używanym narzędziem do kompilowania języka Java i służy do tworzenia dowolnego projektu opartego na języku Java i zarządzania nim. Pomaga to usprawnić procesy tworzenia projektów Java przez deweloperów przy użyciu standardowego sposobu kompilowania projektów, jasnej definicji tego, co składa się z projektu, łatwego sposobu publikowania informacji o projekcie i sposobu udostępniania jednostek JAR w kilku projektach. Cele Maven to:

  • Ułatwij proces kompilacji.
  • Przezroczysta migracja do nowych funkcji.
  • Zapewnij jednolity system kompilacji.
  • Implementowanie wytycznych dotyczących najlepszych rozwiązań w zakresie programowania.

Co to są archetypy?

Twórcy Mavena potrzebowali sposobu zapewnienia spójnych najlepszych praktyk, które można naśladować, gdy deweloperzy strukturują nowe projekty, oraz odkryli, że istnieje kilka podobieństw między różnymi rodzajami projektów. Twórcy wykorzystali te informacje do zdefiniowania tych typów projektów jako szablonów o nazwie archetypów, których narzędzie Maven używa do szybkiego tworzenia szkieletu dla nowych projektów. Oto kilka przykładów typowych archetypów:

Archetyp Opis
maven-archetype-archetype Generuje projekt archetypu
maven-archetype-mojo Generuje przykładową wtyczkę maven
maven-archetype-plugin Generuje wtyczkę Maven
maven-archetype-plugin-site Generuje witrynę wtyczki Maven
maven-archetype-quickstart Generuje projekt Maven
maven-archetype-simple Generuje prosty projekt Maven
maven-archetype-site Generuje witrynę Maven, która pokazuje niektóre obsługiwane typy dokumentów, takie jak APT, XDoc i FML.
maven-archetype-site-simple Generuje prostą witrynę Maven
maven-archetype-webapp Generuje projekt aplikacji netowej Maven

W następnym ćwiczeniu utworzysz aplikację internetową, którą można wdrożyć na platformie Azure. Aby na przykład utworzyć nową aplikację internetową Java przy użyciu narzędzia Maven, należy użyć następującej składni:

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

Uruchomienie poprzedniego polecenia powoduje utworzenie struktury katalogu projektu o następującej zawartości:

Zrzut ekranu przedstawiający folder projektu i hierarchię plików.

Co to są pliki modelu obiektów projektu (POM)?

Jednym z podstawowych składników projektu Maven jest plik Project Object Model (POM), który jest dokumentem XML o nazwie pom.xml, który znajduje się w drzewie katalogów projektu. Plik POM zawiera właściwości, zależności, fazy kompilacji, wtyczki i cele projektu. Podczas kompilowania aplikacji narzędzie Maven zajmie się zarządzaniem zależnościami.

Narzędzie Maven jest oparte na strukturze wtyczek, a dodawanie wtyczek do pliku POM to sposób, w jaki deweloperzy definiują cele dla swoich projektów. Po uruchomieniu narzędzia Maven można wykonać określony cel przy użyciu składni mvn [plugin-name]:[goal-name], a narzędzie Maven uruchomi wszystkie cele do określonego [goal-name].

Poniższy przykład ilustruje zawartość pliku pom.xml wygenerowaną przez polecenie mvn archetype:generate z archetypem maven-archetype-webapp w poprzedniej sekcji tej lekcji.

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

Jak dodać wtyczki do projektu Maven

Aby dodać wtyczkę do projektu Maven, należy dodać określony kod XML dla tej wtyczki do pliku pom.xml. Istnieją dwie przydatne wtyczki, które umożliwiają deweloperom lokalne uruchamianie aplikacji internetowych na swoich maszynach: Eclipse Jetty i Apache Tomcat. Wtyczka usługi Azure App Service obsługuje oba te serwery internetowe. Aby dodać jeden z tych serwerów do projektu, należy dodać wymagany kod XML dla wtyczki do tagu <plugins>.

Aby na przykład dodać wtyczkę Tomcat 11, należy dodać kod XML podobny do następującego przykładu:

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

Notatka

Aby znaleźć wtyczkę i powiązane z nią informacje, możesz wyszukać repozytorium centralne pod adresem https://search.maven.org/.

Po dodaniu kodu XML dla wtyczki Tomcat element <build> powinien przypominać następujący przykład:

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

Po dodaniu wtyczki Tomcat do projektu możesz użyć następującego polecenia narzędzia Maven, aby skompilować projekt, uruchomić serwer Tomcat i przetestować aplikację internetową:

mvn package cargo:run

To polecenie kompiluje aplikację, uruchamia serwer Tomcat na domyślnym porcie 8080 i ładuje serwer Tomcat. Aby załadować aplikację internetową, przejdź do http://localhost:8080/MyWebApp (aplikacja MyWebApp jest określona w elemecie <finalName> w pom.xml).

Podczas ładowania aplikacji internetowej zostanie wyświetlona domyślna strona index.jsp z folderu src\webapp projektu.

W następnym ćwiczeniu utworzysz aplikację internetową Java przy użyciu narzędzia Maven.