-----------------------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. css属性所对应js属性

    document.getElementById("xx").style.xxx中的所有属性是什么,css对应js: 盒子标签和属性对照 CSS语法(不区分大小写) JavaScri ...

  2. python 自动化多线程的应用

    1.本机上同时执行多个浏览器 import threading,sys from time import sleep,ctime from selenium import webdriver path ...

  3. Jmeter接口压测

    对于各个组件的使用,建议参考官方文档 1. Jmeter参数化,从txt文件读取. 1.txt

  4. How to use POST method in Tornado?

    http://stackoverflow.com/questions/10367981/how-to-use-post-method-in-tornado

  5. python + docker, 实现天气数据 从FTP获取以及持久化(五)-- 利用 Docker 容器化 Python 程序

    背景 不知不觉中,我们已经完成了所有的编程工作.接下来,我们需要把 Python 程序 做 容器化 (Docker)部署. 思考 考虑到项目的实际情况,“持久化天气”的功能将会是一个独立的功能模块发布 ...

  6. 图片尺寸批量resize的matlab并行代码

    在caffe ImageNet例子中有对图片进行resize的部分,文中使用的是linux shell脚本命令: for name in /path/to/imagenet/val/*.JPEG; d ...

  7. Spring 基础使用

    1 id 和 name 的区别 id:不可重复,不可包含特殊字符 name:可以重复,可以包含特殊字符 2 scope singleton:配置单例模式(默认),在容器启动时创建对象,而且只创建一个 ...

  8. ECCV 2018 | 给Cycle-GAN加上时间约束,CMU等提出新型视频转换方法Recycle-GAN

    CMU 和 Facebook 的研究者联合进行的一项研究提出了一种新型无监督视频重定向方法 Recycle-GAN,该方法结合了时间信息和空间信息,可实现跨域转换,同时保留目标域的风格.相较于只关注空 ...

  9. VS2015+Opencv半永久配置

    电脑W7 64位+VS2015+opencv3.0 刚开始学习opeencv很麻烦,配置的问题都弄了好久,一旦重装又出现很多问题,在网上看了一个论坛说的永久配置,特意记录一下! 第一步:下载openc ...

  10. 手贱!使用django,在数据库直接删除了表

    莫名其妙的错误. 删除了migreation文件,并且更换了数据库. 1.直接makemigrations + migrate    error: no change ??  WTF 2.makemi ...