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

Posted

技术标签:

【中文标题】如何在 Maven 中创建 Servlet 3.0 Web 应用程序?【英文标题】:How to create Servlet 3.0 web application in maven? 【发布时间】:2013-07-28 10:45:35 【问题描述】:

当我使用 eclipse 使用“maven-archetype-webapp”创建带有 maven 的 webapp 时,它只创建 Servlet 2.3。如何创建 Servlet 3.0?

【问题讨论】:

现代原型here 或here 相关:Maven archetype for simple Servlet application 【参考方案1】:

目前还没有好办法。

Eclipse 正在解析 web.xml 以识别项目的 facet,从而识别 servlet 版本。

要在eclipse中实现servlet 3.0 web app,请按照以下步骤操作:

仅使用 Eclipse:

    创建maven-archetype-webapp的MVN项目 New -> Project -> Mvn Project

    用新的 3.0 版本替换 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">
          <display-name>Archetype Created Web Application</display-name>
        </web-app>
    

    关闭项目并将其从工作区中删除(不要删除磁盘上的文件)

    从项目文件夹中删除 .project 和 .classpath 文件以及 .settings 目录 使用import -&gt; Existing Maven Project重新导入项目

使用 MVN 命令行 + Eclipse

    创建maven-archetype-webapp的MVN项目

      mvn archetype:generate 
          -DarchetypeGroupId=org.apache.maven.arechetypes 
          -DarchetypeArtifactId=maven-archetype-webapp 
          -DarchetypeVersion=1.0 
          -DgroupId=<my.groupid> 
          -DartifactId=<my-artifactId>
    

    将 web.xml 的内容替换为 eclipse 方法点 2 中的内容。

    与 eclipse 方法的第 5 点相同。

【讨论】:

哇,这就像一个魅力。我在加载 apache CXF servlet 时遇到问题。这样做解决了我的问题。谢谢罗马!真的很感激。 非常感谢【参考方案2】:

我通常创建 2.3 webapp 然后将其更改为 3.0 版本。 步骤大致如下:

    在 pom.xml 中:添加 maven-compiler-plugin 配置。源和目标设置为当前 java 版本 (1.8),添加 servlet-api、jsp-api、jstl 到依赖项。 删除 web.xml。 打开项目属性(Alt+Enter 在项目浏览器上) 点击项目方面 取消选中动态 Web 模块的复选框,将版本更改为 3.0 复选复选框。单击进一步配置,将 WebContent 更改为 src/main/webapp。 生成部署描述符(在项目资源管理器中,右键单击部署描述符/生成部署描述符存根)

【讨论】:

【参考方案3】:

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

    文件 -> 新建 -> 动态 Web 项目 右键项目名称:Configure -> Convert to Maven Project

项目将使用最新版本的 servlet 进行配置

然后将servlet和jsp依赖添加到pom.xml中:

<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>

【讨论】:

这应该是公认的答案,在尝试了很多不同的方法来设置要在 aws 上部署的 eclipse Web 应用程序之后,这是最简化的方法之一

以上是关于如何在 Maven 中创建 Servlet 3.0 Web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

maven怎么导入本地jar包

如何使用 Springdoc 在 OpenAPI 3.0 中创建链接?

如何配置 maven 以使用 servlet 3

如何在eclipse中创建一个servlet程序

IDEA使用maven建web项目示例

怎么打开maven中设置的jar包路径文件夹