maven新建web项目的诸多问题与解决方案记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LJX_ahut/article/details/82118704

一·背景

主要记录在使用maven项目搭建java web工程中出现的问题和解决方法,便于再次遇到查询与快速解决

编译工具:STS(spring官网上下载,相当于升级版的eclipse)

编译环境:JDK 8.0、Tomcat 8.0 、maven均已配置完成

本地仓库地址:E:\lujx\Refs\Repository

二·Web project的新建

file-->new-->Maven Project-->next ,在筛选框中输入"web",点击选中点击下一步,并填入信息,完成即可,篇幅所限,就不放置图片了,假设项目名为master4CSDN

ps:第一次创建的话可能会比较慢,因为maven需要向中央仓库(或者其他远程仓库,如阿里云仓库)下载依赖包。

可以看到,新建的项目index.jsp报错。

 这是因为该项目并没有加入tomcat环境,右击项目选择Build Path-->Configure Build Path ,Add Library -->Server Runtime-->tomcat,即可。(前提是tomca环境已经部署)

此时index.jsp报错消失,但这并不是代表万事大吉了,还有一些问题会遇到。

 错误信息 :Dynamic Web Module默认2.3,java默认1.5 更改高版本提示Cannot change version of project facet xxx版本号

由于中央仓库中的jar包所引用的jdk运行环境和 Dynamic Web Module版本比较低,便会引起这个错误,解决方式如下

1.修改工程中的配置文件

在Navigator视界(window-->show view -->navigator)中,修改.settings文件夹下的配置文件

 修改org.eclipse.jdt.core.prefs文件为如下

修改org.eclipse.wst.common.project.facet.core.xml为如下 

 

修改完成后,保存,maven-->update

错误信息:工程中没有任何文件报错,但是左上角有个小红叉 

 这种情况一般是maven编译环境错误引起的,首先检查的是Build path中的环境,大部分情况下这步的配置都是正确的,那么接下来的解决方式:修改pom文件

在pom文件中<build>下添加如下

<plugins>
	<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>2.3.2</version>
	<configuration>
    <source>1.7</source>
	<target>1.7</target>
	</configuration>
	</plugin>
</plugins>

错误信息:web工程中web.xml文件头的过时问题与修改

新建项目的web.xml文件头如下

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

修改为

<?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_3_0.xsd"
	version="3.0">
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

接下来,说重点

接下来,说重点

接下来,说重点

以上配置的修改只能解决一个工程中的问题,再重新创建一样会出现同样的问题,如何一劳永逸的解决呢?方法如下,由于新建工程是从仓库中拉取得模板,所以,我们可以直接修改仓库中模板的配置,详细步骤如下

1.根据新建的提示找到仓库中的资源位置,如图所示,可根据groupId和artifactId定位该资源在仓库中的位置,进入资源文件夹后,使用winrar程序打开jar文件

2.路径archetype-resources--> pom.xml,此pom.xml便是新建项目后工程里面的pom.xml,在此处修改后,工程中的项目便以此为模板。

修改建议:

(1).JUnit版本,原JUnit版本为junit 3,可改为Junit4

(2).加入编译环境中JDK的版本号限制,防止出现无文件报错出现小红叉的现象

(3).建议加入日志依赖等其他常用依赖(只是建议),源码就附在最后吧,先把要点讲完

3.archetype-resources-->src-->main-->webapp-->WEB-INF-->web.xml

(1) 使用web 3.0

(2) 添加默认前端页面

******以上是相关问题的记录,若日后再遇到不同问题,会更新到本帖,帖子如有错误或不足之处,烦请您指正************

附件:

jar文件中修改后的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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>${groupId}</groupId>
  <artifactId>${artifactId}</artifactId>
  <packaging>war</packaging>
  <version>${version}</version>
  <name>${artifactId} Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.17</version>
	</dependency>
    <dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>3.0-alpha-1</version>
	</dependency>
    </dependencies>
  <build>
    <finalName>${artifactId}</finalName>
	<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
		</plugins>
  </build>
</project>

jar文件中的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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" >
  <display-name>Archetype Created Web Application</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>
</web-app>

参考资料:https://blog.csdn.net/Deepak192/article/details/79584298

猜你喜欢

转载自blog.csdn.net/LJX_ahut/article/details/82118704