-----------------------siwuxie095

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

创建第一个 Maven 项目

 
 

 
 

1、打开
Eclipse,File->New->Maven Project

 
 

 
 

 
 

建议:勾选上
Create a simple project(skip archetype selection),


跳过原型选项

跳过骨架选项

 
 

 
 

 
 

 
 

 
 

2、输入
Maven 项目相关信息

 
 

 
 

 
 

其中:

 
 

(1)Group Id:当前 Maven 项目隶属的实际项目

 
 

 
 

(2)Artifact Id:当前 Maven 项目(也称 模块)

 
 

 
 

(3)Version:当前 Maven 项目的版本号

 
 

1)SNAPSHOT:快照版本,即 测试版本

 
 

2)RELEASE:发布版本,即 正式版本

 
 

 
 

(4)Packaging:当前 Maven 项目的打包方式,有三种:jar、

war、pom,打包方式决定了当前
Maven 项目的性质

 
 

1)jar:Java 项目

 
 

2)war:Web 项目

 
 

3)pom:父项目(用于 Maven 项目的继承)

 
 

 
 

(5)Name:当前 Maven 项目的显示名,常用于 Maven 生成的文档

 
 

 
 

(6)Description:当前 Maven 项目的描述,常用于 Maven 生成的文档

 
 

 
 

 
 

 
 

 
 

3、这里创建的是
Web 项目,如下:

 
 

 
 

 
 

其中有两个错误:

 
 

(1)没有部署描述文件
web.xml,解决方法:

 
 

选择项目名,右键->Java EE Tools->Generate Deployment

Descriptor Stub,将自动在
webapp 目录下生成 WEB-INF

目录 和 web.xml 文件

 
 

 
 

 
 

 
 

(2)Maven 默认的
JDK 版本是 1.5,需要将其修改为本机的 JDK 版本

 
 

法一:在
pom.xml 的 project 标签中添加如下内容:

 
 

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.8</source>

<target>1.8</target>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

</plugins>

</build>

 
 

 
 

法二:在
settings.xml 的 profiles 标签中添加如下内容(建议):

 
 

<profile>

<id>jdk-1.8</id>

<activation>

<activeByDefault>true</activeByDefault>

<jdk>1.8</jdk>

</activation>

<properties>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>

</properties>

</profile>

 
 

 
 

添加完成后,还要做操作:选择项目名,右键->Maven->Update Project…

 
 

 
 

 
 

 
 

 
 

 
 

4、在
src/main/java 目录中创建 Servlet 时,编译报错

 
 

 
 

 
 

原因:缺少
servlet-api-xxx.jar,解决方法:在 pom.xml


project 标签中添加依赖,即
添加该 jar 包的坐标

 
 

<dependencies>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<!--

注意:

 

最终要将该项目运行在 Tomcat 中,而 Tomcat 中

已经包含了 servlet-api 的 jar 包

 

这里添加 servlet-api 的依赖仅仅是为了保证编

译通过,不报错而已

 

当把项目运行在 Tomcat 中时,为避免 jar 包冲突,

需要将这里 servlet-api 的作用范围 scope 设置为

provided,即
只在编译和测试时有效,而在运行时

无效

 

同理,jsp-api 也是如此

-->

<scope>provided</scope>

</dependency>

</dependencies>

 
 

 
 

 
 

保存后,项目目录将出现
Maven Dependencies,该 jar 包

索引到本地仓库,且此时编译正常

 
 

 
 

 
 

注:创建的
Servlet 将在 web.xml 中自动注册,无需手动注册。

当然,可以在
web.xml 中对该
Servlet 的访问路径进行修改

 
 

 
 

 
 

 
 

 
 

5、在添加依赖时,如果不知道该依赖的相关信息,就需要查找

依赖,可以使用仓库搜索服务来根据关键字得到
Maven 坐标:

 
 

(1)http://mvnrepository.com/

 
 

(2)http://search.maven.org/

 
 

(3)http://www.mvnbrowser.com

 
 

(4)https://repository.sonatype.org/#welcome

 
 

 
 

 
 

 
 

 
 

6、不再使用
Maven 默认的 tomcat-maven-plugin 插件,改用

tomcat6-maven-plugin

tomcat7-maven-plugin
插件

 
 

「截止目前(2017/9/22)最新的插件」

 
 

法一:在
pom.xml 的 project 标签中添加如下内容:

 
 

<build>

<plugins>

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat6-maven-plugin</artifactId>

<version>2.2</version>

</plugin>

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<version>2.2</version>

</plugin>

</plugins>

</build>

 
 

 
 

法二:在
settings.xml 的 pluginGroups 标签中添加如下内容(建议):

 
 

<pluginGroup>org.apache.tomcat.maven</pluginGroup>

 
 

 
 

 
 

插件官网:

 
 

http://tomcat.apache.org/maven-plugin.html

 
 

 
 

参考链接:

 
 

参考链接1参考链接2参考链接3参考链接4

 
 

 
 

 
 

 
 

 
 

7、项目文件一览:

 
 

LoginServlet.java:

 
 

package com.siwuxie095.servlet;

 
 

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 
 

public class LoginServlet extends HttpServlet {

private static final
long serialVersionUID = 1L;

 
 

public LoginServlet() {

}

 
 

protected
void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");

response.getWriter().write("Hello Maven!");

}

 
 

protected
void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

 
 

}

 
 

 
 

 
 

web.xml:

 
 

<?xml
version="1.0"
encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

<display-name>maven-test</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

 
 

<servlet>

<description></description>

<display-name>LoginServlet</display-name>

<servlet-name>LoginServlet</servlet-name>

<servlet-class>com.siwuxie095.servlet.LoginServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>LoginServlet</servlet-name>

<url-pattern>/LoginServlet</url-pattern>

</servlet-mapping>

</web-app>

 
 

 
 

 
 

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>

<!-- 当前 Maven 项目的坐标信息 -->

<groupId>com.siwuxie095.maven</groupId>

<artifactId>maven-test</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>war</packaging>

 

 

<dependencies>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<!--

注意:

 

最终要将该项目运行在 Tomcat 中,而 Tomcat 中

已经包含了 servlet-api 的 jar 包

 

这里添加 servlet-api 的依赖仅仅是为了保证编

译通过,不报错而已

 

当把项目运行在 Tomcat 中时,为避免 jar 包冲突,

需要将这里 servlet-api 的作用范围 scope 设置为

provided,即
只在编译和测试时有效,而在运行时

无效

 

同理,jsp-api 也是如此

 

几乎所有 Maven 的 Web 项目都要添加 servlet-api

和 jsp-api 依赖,因为这里没有编写 JSP 页面,所

以没有添加 jsp-api 依赖

-->

<scope>provided</scope>

</dependency>

</dependencies>

 
 

</project>

 
 

 
 

 
 

 
 

 
 

8、运行该 Web 项目

 
 

 
 

 
 

法一:选择项目名,右键->Run As->Run on Server

 
 

 
 

法二:选择项目名,右键->Run As->Maven build…,

在 Goals 处输入 tomcat7:run(或 tomcat6:run)

 
 

「如果是在
CMD 窗口中,则需要输入 mvn tomcat7:run」

 
 

 
 

 
 

注意:

 
 

(1)Maven build… 和 Maven build 的区别:

 
 

前者是手动输入命令进行操作,后者是保存前者的命令记录

 
 

 
 

(2)Run on Server 和 tomcat7:run 的区别:

 
 

前者是将该
Web 项目运行在本机安装的 Tomcat 9,而后者

是将该
Web 项目运行在 Maven 的 tomcat7-maven-plugin

插件

 
 

 
 

 
 

 
 

 
 

9、调试该
Web 项目

 
 

 
 

 
 

法一:选择项目名,右键->Debug As->Debug on Server

 
 

 
 

法二:选择项目名,右键->Debug As->Maven build…,

在 Goals 处输入 tomcat7:run(或 tomcat6:run)

 
 

值得注意的是:调试时需要手动选择该项目

 
 

 
 

 
 

 
 

 
 

 
 

10、访问路径

 
 

http://localhost:8080/maven-test/LoginServlet

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

创建第一个Maven项目的更多相关文章

  1. 用Intellij IDEA 创建第一个maven项目!

    1. 一直想如何复用以前项目的maven的jar包! 其实只要拿到pom.xml即可!!! 1.1 创建一个maven项目 2. 3. 创建项目名和项目路径,我给项目起的名字是mavenV1.0 4. ...

  2. java学习入门之---使用idea创建第一个maven项目

    一.准备条件: 1.安装idea旗舰版 2.安装tomcat 二.打开idea开始创建 1.创建Project 2.选择项目类型为maven 3.输入组名和项目名 ---> 下一步 ----&g ...

  3. 创建第一个maven项目的那些坑

    1.记事本方式: class所在的目录结构: class的代码书写: package com.imooc.maven01.mode1; public class HelloWorld { public ...

  4. Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目【转】

    1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开 pom.xml 文件,添加如下内容: <project xmlns="http://maven.a ...

  5. Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目

    1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开 pom.xml 文件,添加如下内容: 1 <project xmlns="http://maven ...

  6. Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目

    1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开pom.xml文件,添加如下内容: <project xmlns="http://maven.apa ...

  7. 使用dos命令创建多模块Maven项目

    好吧,咱们接着上一篇博客继续用另一种方式来创建Maven项目.不过在创建之前我们应该先熟悉一些相关dos命令. 创建web项目命令: mvn archetype:generate -DgroupId= ...

  8. eclipse中创建一个maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  9. 如何在idea里面新建一个maven项目,然后在这个maven项目里创建多个子模块

    如何在idea里面配置maven我这里就不多说了 先新建一个maven项目作为总的管理项目 不用勾选什么,直接下一步 这样子一个普通的maven项目就创建成功了. 因为这个项目是用来管理多个子模块的, ...

随机推荐

  1. ASP.NET Web Pages:帮助器

    ylbtech-.Net-ASP.NET Web Pages:帮助器 1.返回顶部 1. ASP.NET Web Pages - 帮助器 Web 帮助器大大简化了 Web 开发和常见的编程任务. AS ...

  2. sklearn中的metrics模块中的Classification metrics

    metrics是sklearn用来做模型评估的重要模块,提供了各种评估度量,现在自己整理如下: 一.通用的用法:Common cases: predefined values 1.1 sklearn官 ...

  3. c++并发编程实战 笔记

    http://blog.csdn.net/u010087886/article/category/5884745

  4. js基础和运算符

    1.什么JavaScript?    运行环境 :    浏览器                    是一种具有安全性的客户端的脚本语言     用来实现与web页面交互 脚本语言:语言嵌入到htm ...

  5. 关于Node和Deno

    Node和Deno的作者Ryan Dahl开Deno并不是“just for fun”, 也不是为了取代Node, 他有着更加远大的目标. 记住以下要点: 1. Deno目前只是一个Demo或者说是原 ...

  6. vb 读取指定路径文件名

    Private Sub ExportCostSheetData() InsertRow("") InsertRow("Run 2:Export CostingSheet= ...

  7. grep命令打印前N行

    想打印前5行,用head即可:grep xxx |head -n 5

  8. Qt 信号槽

    Qt4与Qt5的信号槽有些不同: 1. Qt4的槽函数必须使用slots关键字声明,而Qt5中已经不再需要了,槽函数可以是任何能和信号关联的成员函数. 2. Qt4指定信号函数和槽函数需用SIGNAL ...

  9. nginx的配置文件解析

    worker_processes ;#工作进程的个数,一般与计算机的cpu核数一致 events { worker_connections ;#单个进程最大连接数(最大连接数=连接数*进程数) } h ...

  10. 从给定字符串中截取n个字节的字符(解决汉字截取乱码问题)

    function GetNBytesChar(s: Ansistring; n: Integer): string;var  aStr: AnsiString;  bStr: WideString;b ...