如何将 servlet api 添加到我的 pom.xml

Posted

技术标签:

【中文标题】如何将 servlet api 添加到我的 pom.xml【英文标题】:how to add the servlet api to my pom.xml 【发布时间】:2010-11-25 02:51:59 【问题描述】:

如何将 servlets API 添加到项目的 pom.xml 中

mvnrepository.com 有很多 servlet api 和类似名称的项目,我不知道哪个是正确的。还是他们都还好?

【问题讨论】:

对于某些版本 --> mvnrepository.com/artifact/javax.servlet/javax.servlet-api/… 。在该链接上,您将找到允许将其添加为依赖项的 XML sn-ps。你可以选择其他版本,当然,只要记下“注意:这个神器有一个新版本” 【参考方案1】:

我相信大多数 web/app 服务器都捆绑了一个版本的 servlet api,因此您不会希望将 api 捆绑到您的 .war 文件中。您将需要找出您的服务器包含哪个版本,然后您可以使用

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>$servlet-api-version</version>
    <scope>provided</scope>
</dependency>

用您的版本替换 servlet-api-version。您需要指定“提供”范围,以便 api.jar 不包含在您的 war 文件中。

【讨论】:

您还必须在属性标签中添加 servlet-api-version 吗? 最好,是的,或者如果您愿意,您可以直接将版本放在版本标签中。【参考方案2】:
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

【讨论】:

【参考方案3】:

对于 servlet-api 3.1.0,声明如下:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

【讨论】:

在mvnrepository 上javax.servlet:servlet-api:3.0-alpha-1 的条目上有人写过(我不知道是谁):注意:此工件已移至:新组 javax.servlet 新工件 javax .servlet-api 。所以看起来更正确的javax.servlet:servlet-api实际上并不是正确的。 太棒了,谢谢,还是问问题,是怎么知道的?请分享 maven-fu :)【参考方案4】:

我们使用

<dependency>
    <groupId>javax</groupId>
    <artifactId>j2ee</artifactId>
    <version>1.4</version>
    <scope>provided</scope>
</dependency>

但如果您只需要 servlet api,您可能需要使用

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>?</version>
    <scope>provided</scope>
</dependency>

【讨论】:

【参考方案5】:

这取决于您使用的 servlet API 版本。

javax.servlet 工件将为所有 servlet API 版本提供 jar。

【讨论】:

【参考方案6】:

当您不想将 jar 文件放在 WEB-INF/lib 文件夹中时,可以使用提供的范围,而是在运行时通过容器或 JDK 提供它。

【讨论】:

【参考方案7】:

雅加达 EE

近年来,Oracle 将 Java EE 技术转移到了Eclipse Foundation。那里的技术已重命名为Jakarta EE。所以 Java Servlet 现在被称为Jakarta Servlet

此名称更改是为了尊重 Oracle 的商标。进行网络搜索,找到许多讨论这一转变的文章和视频。

此名称更改包括将类的包命名从 javax.* 更改为 jakarta.*。这是一个突破性的变化,尽管更新您的项目可能就像更改您的 import 语句一样简单。但请检查您依赖的任何库是否也有使用新命名的可用版本。

小服务程序 5

这种转变带来了新版本的 Servlet 规范。规范的Version 5 与Servlet 4 相同,但名称不同。

对于当前版本,编辑您的 POM 文件以使用以下 Maven 依赖项。 Check for updates in a Maven repository 在版本编号中选择。

您可以将使用 Servlet 5 构建的 Web 应用程序部署到 Web 容器,例如 Tomcat 10.0.x、Jetty 11.0.x、Glassfish 6 等。

<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>5.0.0</version>
    <scope>provided</scope>
</dependency>

小服务程序 6

Jakarta Servlet 6 规范目前正在开发中,并将包含重大更改。该规范将于 2022 年晚些时候最终确定。

请参阅overview page、product page、project links page 和 repository coordinates page。

<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>

【讨论】:

以上是关于如何将 servlet api 添加到我的 pom.xml的主要内容,如果未能解决你的问题,请参考以下文章

如何将移动宽带 API 添加到我的 C# WPF 应用程序

如何将嵌套数组添加到我的模型类

如何将 Google 地图搜索框添加到我的自定义地图?

Eclipse:如何将 javax.servlet 包添加到项目中? [复制]

使用jboss时包javax.servlet.annotation不存在[重复]

maven pom.xml 添加 servlet和jsp依赖