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

執行上述命令會使用下列內容來建立專案目錄結構:

Screenshot of the project folder and file hierarchy.

何謂專案物件模型 (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 JettyApache 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 應用程式。