1. Maven 常用命令

1.1 清除产生的项目

1
mvn clean

1.2 编译源代码

1
mvn compile

1.3 打包

1
mvn package

1.4 只打包不测试(跳过测试)

1
mvn -dmaven.test.skip=true

1.5 安装到本地仓库

1
mvn install

1.6 源码打包

1
2
3
4
#源码打包
mvn source:jar

mvn source:jar-no-fork

2. 第一个Maven程序

2.1 IDEA创建 Maven项目

选择 Create New Project
![](http://cdn.panyucable.cn/zysheep/maven1 (1).png)

选择 Maven 项目
![](http://cdn.panyucable.cn/zysheep/maven1 (2).png)

填写项目信息
![](http://cdn.panyucable.cn/zysheep/maven1 (3).png)

选择工作空间
![](http://cdn.panyucable.cn/zysheep/maven1 (4).png)

3. 目录结构

Java WebMaven 基本结构如下:

1
2
3
4
5
6
7
8
├─src
│ ├─main
│ │ ├─java
│ │ ├─resources
│ │ └─webapp
│ │ └─WEB-INF
│ └─test
│ └─java

结构说明:

  • src:源码目录
    • src/main/java:Java 源码目录
    • src/main/resources:资源文件目录
    • src/main/webapp:Web 相关目录
    • src/test:单元测试

4. IDEA Maven 项目

在 IDEA 界面的右侧 Maven Projects 选项,可以管理 Maven 项目的整个生命周期、插件、依赖等
![](http://cdn.panyucable.cn/zysheep/maven1 (5).png)

5. 完善 Java Web 程序

5.1 POM

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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.zysheep</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>

配置说明:

  • packaging:打包方式,这里是 war 包,表示为 Java Web 应用程序
  • dependencies:项目依赖配置,整个项目生命周期中所需的依赖都在这里配置

5.2 创建测试用 Servlet

创建一个 Servlet 用于测试请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.zysheep.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);
}
}

5.3 创建测试用 JSP

创建一个JSP 页面,用于测试请求

1
2
3
4
5
6
7
8
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Hello Maven
</body>

5.4 创建 Log4J 的配置文件

src/main/resources 目录下创建 log4j.properties 配置文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
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

5.5 配置 web.xml

web.xml配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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>

5.6 测试运行

按照之前章节 第一个 IDEA 应用程序 配置完 Tomcat 后直接运行,打开浏览器访问 http://localhost:8080 显示如下:

1
Hello Maven