上一篇讲了,如何使用IDEA创建一个Maven项目:http://www.cnblogs.com/lay2017/p/8468510.html,本文将使用上一篇构建的Maven项目
接下来我们来看看,如何将一个Maven项目转为Java Web项目
首先我们将该Maven项目调整为Web项目的目录结构
按照一下三步骤:
- 在main目录下,添加webapp目录
- 在webapp目录下,添加WEB-INF目录
- 在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>
需要说明的是:
- Maven依赖的“三坐标”(groupId\\artifactId\\version)必须提供
- 如果某些依赖只需要参与编译,无须打包(例如,tomcat自带了Servlet与JSP所对应的jar包),可将其scope设置为provided。
- 如果某些依赖只是运行时需要,但无须参与编译(例如,JSTL的jar包),可将其scope设置为runtime。
以上,一个Maven项目已经转换为了基于Maven的Java Web项目。
当然,IDEA也可以通过原型直接创建一个基于Maven的Java Web项目,无须这么麻烦。但通过创建Maven项目,并转换为Java Web项目或许会让你对项目的搭建有一个更多一点了解。