如何将 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的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse:如何将 javax.servlet 包添加到项目中? [复制]