本文介绍如何使用 Maven 创建一个Servlet
开发环境简介
$ java -version
java version "14.0.1" 2020-04-14
...
$ mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
OS name: "mac os x", version: "10.14.5", arch: "x86_64", family: "mac"
...
我们的目标就是通过Maven将 HelloHooyes.java 编译成字节码 HelloHooyes.class
1、创建一个项目专用的目录
Maven 项目需要一个目录,假设我们创建的根目录名称为 hooyes ,目标的目录结构如下:
我们注意到,里面有两个核心文件,一个是 pom.xml ,另一个是 HelloHooyes.java,值到注意的是目录的结构是严格的,pom.xml 必须在根目录下,HelloHooyes.java 必须在 src/main/java/ 目录下。
2、创建 pom.xml
在根目录下 hooyes/ 里创建 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hooyes</groupId>
<artifactId>hooyes</artifactId>
<version>1.0-hooyes</version>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
因为 servlet 需要实现 HttpServlet 接口,所以 dependency 中添加 javax.servlet 。Maven 将会在编译的时候,自动帮我们下载引入相关的jar包。
创建了这个文件之后,进入到 hooyes 目录执行 mvn clean 检测,看到 BUILD SUCCESS 即表示 pom.xml 的格式没有错误。
$ mvn clean
...
[INFO] ----------------------------
[INFO] BUILD SUCCESS
[INFO] ----------------------------
[INFO] Total time: 0.317 s
[INFO] Finished at: 2020-05-04T21:29:46+08:00
...
3、创建一个文件 HelloHooyes.java
在 hooyes/src/main/java/ 创建这个文件
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloHooyes extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.getWriter().append("Hello Hooyes!");
}
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.getWriter().append("Welcome to https://hooyes.net/p/first-maven");
}
}
4、编译项目
在 hooyes 根目录,执行
$ mvn package
我们看到 [INFO] BUILD SUCCESS 即表示编译成功。
编译成功后,在 hooyes/ 目录下产生 target 目录。
hooyes/target/classes/ 目录中的 HelloHooyes.class 即是我们需要的目标文件。
5、布署 Servlet
编译好的 HelloHooyes.class 如何将它布署到 Web Server 中,我在前一篇文章中已写过,这里不再重复。
请参考 《最简单的第一个Servlet》中的布署环节。
到此,我们已成功的完成第一个Maven 项目。
源代码
Online
https://github.com/hooyes/hooyes/tree/master/java/first-maven
Git
$ git clone https://github.com/hooyes/hooyes.git
$ cd hooyes/java/first-maven
如果你遇到问题,可以在github上给我提一个 issue.
$ welcome to hooyes.net
[INFO] ------------------------------o-
[INFO] Author : HOOYES
[INFO] Site : https://hooyes.net
[INFO] Page : https://hooyes.net/p/first-maven
[INFO] Last build : 2023-07-31 09:16:20 +0000
[INFO] -0------------------------------
上一篇 最简单的第一个Servlet
下一篇 我眼中的Java架构师