使用 Maven 構建應用】10 第一個 Maven 應用程式
阿新 • • 發佈:2018-12-19
建立 Maven 專案
選擇 File
-> New
-> Project...
選擇 Maven
專案
填寫專案資訊
選擇工作空間
目錄結構
Java Web
的 Maven·
基本結構如下:
├─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