一·背景
主要记录在使用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