-----------------------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. 1038 Recover the Smallest Number (30 分)

    1038 Recover the Smallest Number (30 分) Given a collection of number segments, you are supposed to r ...

  2. Doris FE负载均衡配置

    0 背景概述 Doris完全兼容了mysql协议,并且Doris FE本身通过多follower选举机制选举出master,可以保证fe本身的高可用性,也可以通过加入observer fe节点来提高f ...

  3. sqoop操作之ORACLE导入到HIVE

    导入表的所有字段 sqoop import --connect jdbc:oracle:thin:@192.168.1.107:1521:ORCL \ --username SCOTT --passw ...

  4. php变量详细讲解

    变量是用于存储信息的"容器". 定义一个变量的语法: $变量名 = 值; 使用变量的例子: <?php $x=5; $y=6; $z=$x+$y; echo $z; ?> ...

  5. 使用HTML引用标签来分隔Ticket回复

    今天在查看Ticket的时候,发现如何和客户之间有很多个来回,Ticket的Correspondence就会很长很长,虽然我们有自己的Breakline,但是由于客户回复邮件时,添加的用于分隔旧信息和 ...

  6. python 命名元组(namedtuple)

      我们知道c/c++语言中,有结构体这种数据类型: struct{ string name; int age; char sex; }student; 在对结构体对象进行赋值或者取值时可以使用.运算 ...

  7. blktrace未公开选项网络保存截取数据

    本文链接地址: blktrace未公开选项网络保存截取数据 我们透过blktrace来观察io行为的时候,第一件事情需要选择目标设备,以便分析该设备的io行为.具体使用可以参考我之前写的几篇:这里 这 ...

  8. 提高solr的搜索速度

    之前是使用12台机分布式搜索,1台为主机做索引并分发给子机,8台做大索引搜索服务,3 台做小索引搜索服务,配置基本是内存在4-8G,cpu:2-8core的服务器,索引的大小为8G.搜索的响应时间 是 ...

  9. icil 参考docker

    @All 有不知道怎么用docker发布项目的,请参考 http://192.168.18.224:8888/svn/Enterprise/site/docker/overview of docker ...

  10. Spring Boot 入门搭建

    一.前言 Spring Boot 的设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 二.环境搭建 创建一个 ...