如何在Maven中创建Servlet 3.0 Web应用程序?

8

当我使用eclipse使用“maven-archetype-webapp”创建webapp时,它只会创建Servlet 2.3。怎样才能创建Servlet 3.0?


6
现代原型模板可以在此处找到:这里这里 - fvu
1
相关:[Maven原型用于简单的Servlet应用程序](https://dev59.com/snE85IYBdhLWcg3wbS5h) - Basil Bourque
3个回答

9

目前还没有很好的方法来实现这一点。

Eclipse正在解析web.xml文件以识别项目的facet和servlet版本。

要在Eclipse中实现servlet 3.0 web应用,请按照以下步骤进行:

仅使用Eclipse:

  1. Create MVN project of maven-archetype-webapp New -> Project -> Mvn Project
  2. Replace web.xml file with new 3.0 version:

    <?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">
          <display-name>Archetype Created Web Application</display-name>
        </web-app>
    
  3. Close project and delete it from the workspace (don't delete files on the disk)

  4. Delete .project and .classpath files and .settings directory from the project folder
  5. Reimport project using import -> Existing Maven Project
使用MVN命令行+ Eclipse
  1. Create MVN project of maven-archetype-webapp

      mvn archetype:generate 
          -DarchetypeGroupId=org.apache.maven.arechetypes 
          -DarchetypeArtifactId=maven-archetype-webapp 
          -DarchetypeVersion=1.0 
          -DgroupId=<my.groupid> 
          -DartifactId=<my-artifactId>
    
  2. Replace contents of web.xml as in eclipse method point 2.

  3. Same as point 5 from eclipse method.

哇,这太妙了。我一直在加载Apache CXF servlet方面遇到问题。这样做解决了我的问题。谢谢Roman!非常感激。 - Gautham Honnavara
非常感谢您的这个。 - user4906240

2

我发现最简单的方法是在eclipse中创建一个动态Web项目,然后将其转换为Maven项目:

  1. 文件 -> 新建 -> 动态Web项目
  2. 右键点击项目名称:配置 -> 转换为Maven项目

该项目将配置最新版本的servlet。

然后在pom.xml中添加servlet和jsp依赖项:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.1</version>
    <scope>provided</scope>
</dependency>

在尝试了许多不同的方法来设置Eclipse Web应用程序以部署到AWS之后,这是其中一个最简化的解决方案,应该被接受作为答案。 - Jim Factor

0

我通常会创建2.3版本的Web应用程序,然后将其更改为3.0版本。 大致步骤如下:

  1. 在pom.xml中:添加maven-compiler-plugin配置。 将源和目标设置为当前Java版本(1.8),将servlet-api、jsp-api、jstl添加到依赖项中。
  2. 删除web.xml文件。
  3. 打开项目属性(在项目资源管理器上按Alt + Enter)
  4. 单击“项目结构”
  5. 取消选中动态Web模块复选框,将版本更改为3.0
  6. 重新选中复选框。 点击进一步配置,将WebContent更改为src/main/webapp。
  7. 生成部署描述符(在项目资源管理器中,右键单击部署描述符/生成部署描述符存根)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接