一、war类型项目创建
1、新建 Maven project 时选择 packaging 为 war。
2、在 webapp 下新建META-INF,WEB-INF,WEB-INF/web.xml
3、在 pom.xml 文件中添加 java EE 相关的三个 jar 包
<scope>设置为 provided 表示 jar 包只在编译期生效,不会打包发布到tomcat中。
<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies>
4、配置 tomcat 插件
<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 设置tomcat端口号 --> <port>80</port> <!-- 项目发布到tomcat的名称 --> <!-- / 把项目发布到tomcat后名称设为 ROOT --> <!-- /abc --> <path>/</path> </configuration> </plugin> </plugins> </build>
5、右键项目 --> run as --> Maven build --> Goals 中输入 clean tomcat7:run
二、相关异常
1、直接新建xml文件产生以下异常:
解决方法:更改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" id="WebApp_ID" version="2.5"> <display-name>08-Jsp</display-name> </web-app>
2、servlet 与 tomcat 冲突
解决方法:servlet 加上 <scope>provided</scope> 标签
3、jsp 与 tomcat 冲突
解决方法:jsp 加上 <scope>provided</scope> 标签
4、[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project MavenStudy_6_war: Failed to clean project: Failed to delete C:Userslenovoeclipse-workspaceMavenStudy_6_war arget omcatlogsaccess_log.2020-03-19 -> [Help 1]
原因:上一次的Maven build没有关闭
解决方法:养成及时关闭服务器的习惯。关闭上一次的Maven build,重新运行。