Tworzenie internetowej aplikacji Java
Kilka internetowych aplikacji Java działa aktualnie w Twojej firmie na serwerach wewnętrznych. Aby zmniejszyć wysokie koszty związane z konserwowanie tych serwerów, firma chce migrować aplikacje internetowe do usługi aplikacja systemu Azure Service.
Zespół programistyczny ma doświadczenie z używaniem programu Maven do tworzenia aplikacji komputerowych i używasz już programu Maven do automatyzowania procesu kompilowania projektów Java. Wiesz, że program Maven używa wtyczek dla projektów w celu dodania kolejnych funkcjonalności, i chcesz użyć archetypu do utworzenia aplikacji internetowej, którą można wdrożyć w usłudze Azure App Service.
W tej lekcji ponownie zetkniesz się ze sposobami, które ułatwiają tworzenie aplikacji internetowych Java za pomocą programu Maven i archetypów. 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 programu Maven do automatyzowania kompilacji aplikacji internetowych 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 usprawnić procesy tworzenia projektów języka Java przez deweloperów, udostępniając standardowy sposób kompilowania projektów, jasną definicję tego, z czego składa się projekt, łatwy sposób publikowania informacji o projekcie oraz sposób udostępniania plików JAR w wielu projektach. Cele programu 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ójnego najlepszego rozwiązania do naśladowania, gdy deweloperzy tworzą struktury nowych projektów, i 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 nazywanych archetypami, których narzędzie Maven używa do szybkiego tworzenia szkieletu dla nowych projektów. Poniżej przedstawiono 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 demonstruje 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 internetowej 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:
Co to są pliki POM?
Jednym z podstawowych składników projektu Maven jest plik modelu obiektów projektu (plik POM), który jest dokumentem XML o nazwie pom.xml
znajdującym się w drzewie katalogów projektu. Plik POM zawiera właściwości, zależności, fazy kompilacji, wtyczki i cele dla projektu. Podczas kompilowania aplikacji program Maven zajmuje się zarządzaniem zależnościami.
Program Maven jest oparty na strukturze wtyczek, a dodawanie wtyczek do pliku POM jest sposobem, w jaki deweloperzy definiują cele dla swoich projektów. Po uruchomieniu programu Maven można wykonać konkretny element docelowy przy użyciu składni mvn [plugin-name]:[goal-name]
. Program Maven uruchomi wtedy wszystkie elementy docelowe aż do określonego elementu [goal-name]
.
Poniższy przykład ilustruje zawartość pliku pom.xml wygenerowaną przez mvn archetype:generate
polecenie z maven-archetype-webapp
archetypem 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 dodawać 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 aplikacja systemu Azure 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>
Uwaga
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 <build>
Tomcat element 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
adresu (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 za pomocą programu Maven.