使用eclipse手动建一个maven的web project可能会有版本不合适的情况,例如使用spring的websocket需要web3.0什么的,不全面的修改可能会出现各种红叉,甚是苦恼。我从我的使用经验出发,从建立一个maven项目开始,记录我用maven建一个web3.0的项目。
建立一个maven的web项目
1、首先要安装配置好maven,具体怎么配置就不说了。
2、eclipse->new project->maven project->next->选择maven-archetype-webapp
3、Group ID:唯一的组织或机构名,相当于package的前缀;Artifact Id:项目名;Package:包名,会自动填好
4、配置Deployment Assembly,需要添加一个maven lib,如果缺少什么文件,可以在项目的src->main下面新建。
最后成功创建一个web2.3的项目。
修改web的版本
1、 在项目的.setting文件夹中编辑org.eclipse.wst.common.project.facet.core.xml文件,将 <installed facet="jst.web" version="2.3"/> 的2.3改为3.0,随后右键项目,选择maven->update project ,之后会出现红叉,不用担心,接着下一步。
2、右击项目,找到properties->project facets,将Dynamic web Module改为3.0,而下面的java版本也改为相应的。
3、在web.xml文件中的<web-app>代替,其中版本要相互对应,最后再update project,红叉就消失了,版本就变为3.0了。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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">
如果觉得每次update project项目JRE System Lib都会变化,那么,可以再pom.xml的<build>上加上
<plugins> <!-- 编译的时候使用JDK7和UTF8编码 ,--> <plugin> <artifactId>maven-compiler-plugin</artifactId> <!-- <version>3.0</version> --> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- 编译jar包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> </archive> </configuration> </plugin> </plugins>
最后此处应该有一个springmvc+hibernate的pom.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_3_0.xsd" version="3.0">
</web-app>
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.0http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>zm.java.web</groupId>
<artifactId>community</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>community Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<finalName>com.zm.javaweb</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<!-- <version>3.0</version> -->
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>