Создание веб-приложения Azure
В вашей компании сейчас работает несколько веб-приложений Java на внутренних серверах. Чтобы снизить высокие затраты, связанные с обслуживанием этих серверов, ваша компания хочет перенести веб-приложения в службу приложение Azure.
Группа разработки имеет опыт использования Maven для создания классических приложений, и вы уже используете Maven для автоматизации процесса сборки проектов Java. Вы понимаете, что Maven использует подключаемые модули для проектов, чтобы добавлять дополнительные функции, и вы хотите использовать архетип для создания веб-приложения, которое можно развернуть в службе приложений Azure.
В этом модуле вы узнаете, как Maven и архетипы могут помочь в создании веб-приложений Java. Вы узнаете, как создать небольшое веб-приложение Java и запустить его локально. Затем вы узнаете, что добавить в файл project Object Model (POM), чтобы включить локальное тестирование для нового приложения.
Использование Maven для автоматизации создания веб-приложений Java
Maven является наиболее используемым средством сборки Java, и его можно использовать для создания и управления любым проектом на основе Java. Оно помогает оптимизировать процессы сборки проектов Java с помощью стандартного способа сборки проектов, четкого определения компонентов проекта, простого способа публикации сведений о проекте и способа совместного использования JAR в нескольких проектах. Цели Maven
- Упрощение процесса сборки.
- Прозрачно переносится на новые функции.
- Укажите единую систему сборки.
- Реализуйте рекомендации по разработке.
Что такое архетипы?
Создатели Maven нуждались в том, чтобы обеспечить последовательную рекомендацию, чтобы следовать, когда разработчики структурируют новые проекты, и они обнаружили, что существует несколько сходств между различными типами проектов. Создатели использовали эту информацию для определения этих типов проектов как шаблонов, называемых архетипами, которые Maven использует для быстрого создания шаблонов для новых проектов. Ниже приведено несколько примеров распространенных архетипов.
Архетип | Description |
---|---|
maven-archetype-archetype |
Создает проект архетипа |
maven-archetype-mojo |
Создает пример подключаемого модуля Maven |
maven-archetype-plugin |
Создает подключаемый модуль Maven |
maven-archetype-plugin-site |
Создает сайт подключаемого модуля Maven |
maven-archetype-quickstart |
Создает проект Maven |
maven-archetype-simple |
Создает простой проект Maven |
maven-archetype-site |
Создает сайт Maven, демонстрирующий некоторые поддерживаемые типы документов, такие как APT, XDoc и FML |
maven-archetype-site-simple |
Создает простой сайт Maven |
maven-archetype-webapp |
Создает проект веб-приложения Maven |
В следующем упражнении вы создадите веб-приложение, которое можно развернуть в Azure. Например, чтобы создать веб-приложение Java с помощью Maven, можно использовать следующий синтаксис:
mvn archetype:generate \
-DgroupId=com.microsoft.example \
-DartifactId=MyWebApp \
-DarchetypeArtifactId=maven-archetype-webapp \
-DarchetypeVersion=1.4 \
-DinteractiveMode=false
При выполнении предыдущей команды создается структура каталога проекта со следующим содержимым:
Что такое файлы проектной модели объектов (POM)?
Одним из основных компонентов проекта Maven является файл проектной модели объектов (POM), который представляет собой XML-документ с именем pom.xml
, который находится в дереве каталогов проекта. Файл POM содержит свойства, зависимости, этапы сборки, подключаемые модули и цели для проекта. При сборке приложения служба Maven позаботится об управлении зависимостями.
Служба Maven основана на инфраструктуре подключаемых модулей. Разработчики определяют цели для своих проектов, добавляя подключаемые модули в файл POM. При запуске Maven можно выполнить определенную цель, используя синтаксис mvn [plugin-name]:[goal-name]
; Maven запустит все цели вплоть до указанной [goal-name]
.
В следующем примере показано pom.xml содержимое файла, созданное mvn archetype:generate
командой с maven-archetype-webapp
архетипом в предыдущем разделе этого урока.
<?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>
Добавление подключаемых модулей в проект Maven
Чтобы добавить подключаемый модуль в проект Maven, необходимо добавить конкретный XML-код для этого подключаемого модуля в файл pom.xml . Существует два полезных подключаемых модуля, которые позволяют разработчикам локально запускать веб-приложения на своих компьютерах: Eclipse Jetty и Apache Tomcat. Подключаемый модуль службы приложение Azure поддерживает оба этих веб-сервера. Чтобы добавить один из этих серверов в проект, необходимо добавить необходимый XML-код для подключаемого <plugins>
модуля в тег.
Например, чтобы добавить подключаемый модуль Tomcat 11, вы добавите XML, например следующий пример:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven3-plugin</artifactId>
<version>1.10.13</version>
<configuration>
<container>
<containerId>tomcat11x</containerId>
</container>
</configuration>
</plugin>
Примечание.
Чтобы найти подключаемый модуль и связанные с ней сведения, вы можете найти центральный репозиторий по адресу https://search.maven.org/.
После добавления XML для подключаемого модуля <build>
Tomcat элемент должен выглядеть следующим образом:
<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>
После добавления подключаемого модуля Tomcat в проект можно использовать следующую команду Maven для сборки проекта, запустить сервер Tomcat и протестировать веб-приложение:
mvn package cargo:run
Эта команда создает приложение, запускает сервер Tomcat на порте по умолчанию 8080 и загружает сервер Tomcat. Чтобы загрузить веб-приложение, перейдите http://localhost:8080/MyWebApp
в раздел (MyWebApp указывается в элементе <finalName>
pom.xml).
При загрузке веб-приложения отображается страница index.jsp по умолчанию из папки src\webapp проекта.
В следующем упражнении вы создадите веб-приложение Java с помощью Maven.