1. 程式人生 > >使用 Maven 構建應用】10 第一個 Maven 應用程式

使用 Maven 構建應用】10 第一個 Maven 應用程式

建立 Maven 專案

選擇 File -> New -> Project...

在這裡插入圖片描述

選擇 Maven 專案

在這裡插入圖片描述

填寫專案資訊

在這裡插入圖片描述

選擇工作空間

在這裡插入圖片描述

目錄結構

Java WebMaven· 基本結構如下:

├─src
│  ├─main
│  │  ├─java
│  │  ├─resources
│  │  └─webapp
│  │      └─WEB-INF
│  └─test
│      └─java

結構說明:

  • src:原始碼目錄
    • src/main/java: Java 原始碼目錄
    • src/main/resources: 資原始檔目錄
    • src/main/webapp:Web 相關目錄
    • src/test:單元測試

IDEA Maven 管理

在 IDEA 介面的右側 Maven Projects 選項,可以管理 Maven 專案的整個生命週期、外掛、依賴等

在這裡插入圖片描述

完善 Java Web 程式

POM

修改 pom.xml 配置,內容如下:

<?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.funtl</groupId>
    <artifactId>hello-maven</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>1.7.25</version>
        </dependency>
    </dependencies>
</project>

配置說明:

  • pacageing: 打包方式,這裡是 war 包,表示 Java Web 應用程式
  • dependencies: 專案依賴配置,整個專案生命週期中所需要的依賴都在這裡配置

建立測試用 Servlet

建立一個 Servlet 用於測試請求

package com.yuu.hello.maven.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getRequestDispatcher("/index.jsp").forward(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

建立測試用 JSP

建立一個 JSP 頁面,用於測試請求

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    Hello Maven
</body>
</html>

建立 Log4J 的配置檔案

在 src/main/resource 目錄下建立 log4j.properties 配置檔案,內容如下:

log4j.rootLogger=INFO, console, file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=logs/log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.MaxFileSize=1024KB
log4j.appender.A3.MaxBackupIndex=10
log4j.appender.file.layout.ConversionPattern=%d %p [%c] - %m%n

配置 web.xml

web.xml 配置檔案如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.funtl.hello.maven.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/servlet/hello</url-pattern>
    </servlet-mapping>
</web-app>

測試執行

將 hello-manven 部署到 tomcat 上執行,訪問 http://localhost:8080 顯示如下:

Hello Maven