Maven创建war类型项目及相关注意事项

Maven创建war类型项目方法

一、新建Maven Projected项目,选择war类型
在这里插入图片描述
二、普通web项目目录
在这里插入图片描述
三、maven的war项目目录
在这里插入图片描述

  • 这里需要手动添加META-INF和WEB-INF目录。

四、在webapp目录下添加META-INF和WEB-INF目录,以及复制web.xml文件到WEB-INF目录下。
在这里插入图片描述

五、普通web项目的WEB-INF目录下有一个lib目录,用来快速导入jar包。但是在maven的war类型项目中不需要该目录,因为所有的依赖都在pom.xml中配置。

六、配置tomcat运行环境,在pom.xml中添加依赖的jsp-api、servlet-api、jstl的jar包。

<dependencies>
  	<dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>javax.servlet-api</artifactId>
	    <version>3.0.1</version>
	    
		<!-- 只在编译器生效,否则会和maven插件自带的冲突 
	    	项目发布时该jar包不会发布
	    -->	    
	    <scope>provided</scope>
	</dependency>
	
	<dependency>
	    <groupId>javax.servlet.jsp</groupId>
	    <artifactId>jsp-api</artifactId>
	    <version>2.2</version>
		<!-- 只在编译器生效,否则会和maven插件自带的冲突 
	    	项目发布时该jar包不会发布
	    -->
	    <scope>provided</scope>
	</dependency>
	
	<dependency>
	    <groupId>jstl</groupId>
	    <artifactId>jstl</artifactId>
	    <version>1.2</version>
	</dependency>
  </dependencies>
  • 这时可以创建一个servlet,并将该项目发布到本地tomcat。

Maven配置tomcat插件及错误解决

一、配置tomcat插件

  • 配置之后,该项目的运行和本地tomcat一点关系都没有了,电脑可以不下载tomcat就可以运行。相当于重新下载了一个tomcat,而且每个项目都相当于配置了一个独有的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之后的名称 -->
				<!-- /相当于把项目名设置成root -->
	    		<path>/</path>
	    	</configuration>
  		</plugin>
  	</plugins>
  </build>

二、运行tomcat插件
在这里插入图片描述
三、异常处理

  • 如果上一步报错:
Failed to execute goal org.apache.maven.plugins:
maven-compiler-plugin:3.1:
compile (default-compile) on project myweb: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are 
running on a JRE rather than a JDK?
  • 解决
    在eclipse中,选择window→preference→java→Installed JREs,点add添加你的jdk路径,选jdk而不是jre,之前的报错原因就出在这里。
    在这里插入图片描述
    如果没有jdk安装路径,需要自己添加,方法如下:
    在这里插入图片描述
    在这里插入图片描述
    之后重新点击maven build进行启动。出现以下界面说明成功:
    在这里插入图片描述

四、如果再次运行该项目时,报错误:

Failed to clean project: Failed to delete 
D:\eclipse\workspace\myweb\target\tomcat\logs\access_log.

是因为上一次的项目还在运行,关闭即可。
在这里插入图片描述
关闭后重新运行就可以。

五、要特别注意依赖中作用域的使用
在这里插入图片描述
不添加作用域的话,运行文件在访问时会报错,因为和maven插件中自带的jar包冲突,有两个jar包名称一致,导致运行错误。

Maven配置资源拷贝插件

一、maven默认只把src/main/resources里面的非.Java文件进行编译到classes中。
二、如果希望src/main/java下的xml文件也被编译到classes中,需要配置资源拷贝插件。
三、实现:

  • 在<build>标签中添加下面代码:
<resources>
	<resource>
		<directory>src/main/java</directory>
	 	<includes>
	 		<include>**/*.xml</include>
		</includes>
	</resource>
	<resource>
		<directory>src/main/resources</directory>
		<includes>
			<include>**/*.xml</include>
			<include>**/*.properties</include>
		</includes>
	</resource>
</resources>

在这里插入图片描述

发布了45 篇原创文章 · 获赞 11 · 访问量 3896

猜你喜欢

转载自blog.csdn.net/qq_42197800/article/details/95931370