hooyes

第一个Maven项目:简单的Servlet

|2020-05-04

请尊重原创,本文原文地址:https://hooyes.net/p/first-maven

本文介绍如何使用 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.

https://hooyes.net/p/first-maven
https://hooyes.net/p/first-maven
$ 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------------------------------
原文地址:https://hooyes.net/p/first-maven
原文地址:https://hooyes.net/p/first-maven

...

Content
...
TOP