建立 Java Web 應用程式
您的公司目前正在內部伺服器上執行數個 Java Web 應用程式。 為了減少與維護這些伺服器相關的高昂成本,公司想要將 Web 應用程式移轉至 Azure App Service。
開發小組有使用 Maven 來建立傳統型應用程式的體驗,且您已使用 Maven 將 Java 專案的建置程序自動化。 您了解 Maven 會使用專案的外掛程式來新增額外功能,而且您想要使用原型來建立可部署至 Azure App Service 的 Web 應用程式。
在此單元中,您將會回顧 Maven 和原型如何協助建立 Java Web 應用程式。 您將瞭解如何建立小型 Java Web 應用程式,並在本機執行。 然後,您將瞭解要新增至 [專案物件模型 (POM)] 檔案的內容,以啟用新應用程式的本機測試。
使用 Maven 將 Java Web 應用程式的建置自動化
Maven 是最常使用的 Java 建置工具,您可以用以建置及管理任何 Java 型專案。 其有助簡化開發人員使用標準方式建置 Java 專案的程序,以建置專案、專案構成項目的明確定義、發佈專案資訊的簡易方法,以及跨多個專案共用 JAR 的方式。 Maven 的目標是:
- 讓建置程序更加容易。
- 以透明方式移轉至新功能。
- 提供統一的建置系統。
- 實作有關開發最佳做法的指導方針。
何謂原型?
Maven 建立者需要一種方法來提供一致的最佳做法,供開發人員在建構新專案時遵循,同時他們發現不同種類的專案之間有幾個相似之處。 建立者會使用此資訊,將這些專案類型定義為範本 (稱為 原型),而 Maven 會使用這些範本來快速建立新專案的 Scaffolding。 以下是一些常見原型的範例:
原型 | 描述 |
---|---|
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 Web 應用程式專案 |
在下一個練習中,您將建立可部署至 Azure 的 Web 應用程式。 例如,若要使用 Maven 建立新的 Java Web 應用程式,可使用下列語法:
mvn archetype:generate \
-DgroupId=com.microsoft.example \
-DartifactId=MyWebApp \
-DarchetypeArtifactId=maven-archetype-webapp \
-DinteractiveMode=false
執行上述命令會使用下列內容來建立專案目錄結構:
何謂專案物件模型 (POM) 檔案?
Maven 專案的其中一個核心元件是專案物件模型 (POM) 檔案,這是名為 pom.xml
的 XML 文件,位於專案的目錄樹狀結構中。 POM 檔案包含專案的屬性、相依性、組建階段、外掛程式和目標。 當建置應用程式時,Maven 會負責管理相依性。
Maven 是以外掛程式架構為建置基礎,而將外掛程式新增至 POM 檔案是開發人員為其專案定義目標的方式。 當執行 Maven 時,可以使用 mvn [plugin-name]:[goal-name]
的語法來執行特定目標,而 Maven 會執行所有目標,一直到所指定的 [goal-name]
為止。
下列範例說明使用 mvn archetype:generate
命令搭配 maven-archetype-webapp
原型 (位於此單元的上一節中) 所產生的 pom.xml
檔案內容。
<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>
如何將外掛程式新增至 Maven 專案
若要將外掛程式新增至 Maven 專案,您需要將該外掛程式的特定 XML 新增至 pom.xml
檔案。 有兩個實用的外掛程式可讓開發人員在其電腦本機上執行 Web 應用程式:Eclipse Jetty 與 Apache Tomcat。 Azure App Service 外掛程式支援這兩種 Web 伺服器。 若要將這些伺服器的其中一種新增至專案,可將外掛程式的必要 XML 新增至 <build>
標記。
例如,若要新增 Tomcat 外掛程式,您可如下列範例所示新增 XML:
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
注意
若要尋找外掛程式及其相關資訊,您可以搜尋中央存放庫 (網址是 https://search.maven.org/)。
當將 Tomcat 外掛程式的 XML 新增至 pom.xml
檔案時,XML 應該類似下列範例:
<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>
將 Tomcat 外掛程式新增至專案之後,可使用下列 Maven 命令來啟動 Tomcat 伺服器,並測試 Web 應用程式:
mvn tomcat7:run
此命令會建置應用程式、在預設連接埠 8080 上啟動 Tomcat 伺服器,然後從專案的 src\webapp
資料夾載入 index.jsp
頁面。
在下一個練習中,您將使用 Maven 來建立 Java Web 應用程式。