Eclipse建立webapp3.0以上的Maven项目

7 篇文章 0 订阅
2 篇文章 0 订阅

建立项目

使用Eclipse建一个

File –> New –> Other

这里写图片描述

Next ,Next,选择maven-archetype-webapp

这里写图片描述

输入坐标信息,Finish

这里写图片描述

稍等片刻,我们的webapp骨架就构建好了。

项目依赖与设置

新建的项目会报错,不过无关紧要,主要是我们的项目没有运行环境,导致jsp无法编译,错误具体原因

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

这里写图片描述

解决方法有两个

  • 第一个就是为项目添加一个运行环境。

在工程上右键 –> Properties

在Targeted Runtimes中为项目添加一个运行环境就好了。

这里写图片描述

  • 第二个是可以为项目加入servlet的依赖。
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

任选一个就可以了。

补充

Maven的依赖范围

Maven有三种classpath(编译classpath、测试classpath和运行classpath)
相应的Maven有以下几种依赖范围
compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译,测试和运行三种classpath都有效。典型的例子就是spring-core。
test:测试依赖范围。使用此依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或着运行项目时将无法使用次依赖。典型的例子就是Junit。
provided:已提供范围依赖。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时无效,典型的例子就是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复引入了。
还有runtimesystem,详情参考

许晓斌. Maven实战[M]. 机械工业出版社, 2011.

这里我采用第二种方法,配置一个provided的servlet-api依赖。

修改webapp版本

默认建立的webapp是2.3的。我们将其修改为3.1的。

第一步,将web.xml的头信息进行修改。

各个版本的头信息如下

2.3的头信息

<?xml version="1.0" encoding="UTF-8"?>
<!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 id="WebApp_ID">
    <display-name>2.3</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>

3.0的头信息

<?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"
    id="WebApp_ID" version="3.0">

</web-app>

3.1的头信息

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">

</web-app>

第二步,修改org.eclipse.wst.common.project.facet.core.xml。

修改项目路径下的.settings/org.eclipse.wst.common.project.facet.core.xml

这里写图片描述

将jst.web的版本改为自己想要版本,我改到了3.1

这里写图片描述

第三步,修改pom.xml。

在pom.xml的build标签里添加如下元素

    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>

然后工程,右键 –> Maven –> Update Project

这里写图片描述

工程右键 – > Properties

这里写图片描述

项目已经是web3.1和java1.7了。

关于为什么我的项目直接是1.7的Java
因为我的用户级的settings做了如下修改

<profile>  
    <id>jdk-1.7</id>  
    <activation>  
        <activeByDefault>true</activeByDefault>  
        <jdk>1.7</jdk>  
    </activation>  
    <properties>  
        <maven.compiler.source>1.7</maven.compiler.source>  
        <maven.compiler.target>1.7</maven.compiler.target>  
        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>  
    </properties>  
</profile>

大概在settings.xml的200行左右。

Maven的配置参见

http://blog.csdn.net/frankcheng5143/article/details/51245282

有时候我们的Maven会忘记给我们建立相应的文件夹。

这里写图片描述

我们依次建立相应的文件夹。

在 src/main下 New Folder即可。

这里写图片描述

参考

http://my.oschina.net/China2012/blog/191404?fromerr=jjzJfqKY

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值