如何将Maven项目转为Java Web项目

Posted lay2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Maven项目转为Java Web项目相关的知识,希望对你有一定的参考价值。

上一篇讲了,如何使用IDEA创建一个Maven项目:http://www.cnblogs.com/lay2017/p/8468510.html,本文将使用上一篇构建的Maven项目

接下来我们来看看,如何将一个Maven项目转为Java Web项目

首先我们将该Maven项目调整为Web项目的目录结构

按照一下三步骤:

  1. 在main目录下,添加webapp目录
  2. 在webapp目录下,添加WEB-INF目录
  3. 在WEB-INF目录下添加web.xml文件

技术分享图片

此时IDEA给出一个提示

技术分享图片

IDEA已经识别除了目前我们使用了Web框架(即Servlet框架),需要进行一些配置才可以使用。单击“Configure”按钮,看到一个确认框,单击“OK”即可将当前项目变成Web项目

在web.xml添加代码

<?xml version="1.0" encoding="utf-8" ?>
<!--这里使用Servlet3.0框架,所以在web.xml中添加web-app代码如下-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <!--实际上,使用Servlet3.0框架可以省略web.xml文件,因为Servlet无须在web.xml里配置,只需要通过Java注解的方式来配置即可-->
</web-app>

在pom.xml文件中添加Java Web的Maven依赖,这里给出完整代码

<?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>cn.lay</groupId>
    <artifactId>chapter1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--Web 项目需要打包成war包,所以需要配置如下,默认为jar包-->
    <packaging>war</packaging>

    <properties>
        <!--统一源代码的编码方式,否则使用Maven编译源代码的时候机会出现相关警告。一般都使用UTF-8进行编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


    <!--接下来,添加Java Web的所需的依赖:Servlet、JSP、JSTL等-->
    <dependencies>
        <!--Servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!--JSP-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <!--JSTL-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>


    <!--统一源代码与编译输出的JDK版本-->
    <build>
        <plugins>
            <!--所有的plugin都需要添加到build/plugins标签下,插件和依赖都来自于Maven中央仓库:http://search.maven.org/-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <!--可选插件,Maven打包时跳过单元测试-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

需要说明的是:

  1. Maven依赖的“三坐标”(groupId\\artifactId\\version)必须提供
  2. 如果某些依赖只需要参与编译,无须打包(例如,tomcat自带了Servlet与JSP所对应的jar包),可将其scope设置为provided。
  3. 如果某些依赖只是运行时需要,但无须参与编译(例如,JSTL的jar包),可将其scope设置为runtime。

以上,一个Maven项目已经转换为了基于Maven的Java Web项目。

当然,IDEA也可以通过原型直接创建一个基于Maven的Java Web项目,无须这么麻烦。但通过创建Maven项目,并转换为Java Web项目或许会让你对项目的搭建有一个更多一点了解。

 

以上是关于如何将Maven项目转为Java Web项目的主要内容,如果未能解决你的问题,请参考以下文章

(转)使用IDEA将普通MAVEN项目转为WEB项目

eclipse中如何将java项目转为java Web项目

怎么把Maven项目转为动态Web项目?

普通web项目转为maven项目整理

普通web项目转为maven项目整理

myeclipse 项目,怎么转成maven项目