jakarta-ee - 我的 JavaEE 或 JakartaEE 版本是什么?
问题描述
我知道如何找到我正在使用的 JDK 版本。我可以
java -version
在命令行中发出,它会打印我的版本。我知道如何找到我正在使用的 Eclipse 版本。我可以转到
Eclipse 菜单 > 帮助 > 关于 Eclipse,它会显示
Eclipse 的版本。我知道我使用的是什么版本的 JUnit。我可以打开我的根项目的 pom.xml 文件并查找
<junit.version>
节。我也知道我使用的是什么 WAS Liberty 服务器。我可以转到 Eclipse 服务器,右键单击我的服务器、属性、产品信息,它告诉我我使用的是 WebSphere Application Server 版本 21.0.0.4。
但是,我不清楚如何找到我的应用程序使用的 JavaEE 和/或 JakartaEE 版本。
如何找到我的应用正在使用的 JavaEE 或 JakartaEE 平台的版本? 我正在使用 Maven,但在我的 pom.xml 文件中看不到“javaee”或“jakartaee”之类的东西。
解决方案
通常,如果您使用 maven 或 gradle 开发 JavaEE/JakartEE 应用程序,您将在 gradle 配置或 maven pom.xml 文件中依赖 javaEE/jakartaEE 依赖项。
由于我有更多使用 maven 的经验,我将使用一个 maven 示例进行详细说明。所以基本上你会有一个像这样的依赖:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
使用 maven 您将需要它,因此它知道它需要依赖项才能解析 java-ee 功能。例如@Inject 注释,以及 CDI 注释和功能。
但是,由于您正在为其开发的应用程序服务器已经包含了这些 jar,因此您不希望此依赖项使用默认(=compile)范围,因为这会使您的应用程序变得不必要地大,并可能导致不同的类加载器出现问题。
我在各种项目中看到的另一个选项是,而不是直接向 javaee 添加依赖项,而是使用范围“import”导入应用程序的 bom(材料清单)并在您自己的 dependencyManagement 部分中键入“pom”庞。通常,此物料清单已在其中指定其支持的 javaee 版本。这使得在您的依赖项部分中使用所需的依赖项并省略版本以使您的版本与您的应用程序服务器同步变得容易。
因此,例如,如果您正在为 jboss 开发,您的依赖项可能如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>wildfly-javaee8</artifactId>
<version>17.0.1.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
仔细查看导入的 bom 中定义的依赖项,您将知道应用程序服务器提供的依赖项。
可在此处找到有关物料清单的更多信息
推荐阅读
- java - 在 Kotlin @JvmStatic 中返回片段实例
- java - 当您不提前知道 JSON 标签名称时,Jackson 和反序列化?
- jquery - 在页面加载时获取下拉选择 jQuery 的第一个值
- node.js - 仅运行一次但在多个主机上运行的 Cron 样式调度程序
- c# - C# 使用包含拆分
- php - 当我将 SVG 图像放入 html 时,它变得一团糟
- rest - C#.Net RestSharp 客户端 - 传递身份验证令牌
- c# - XamarinForms(Visual Studio) 中的报告
- docker - 如何使用环境变量将主机名和/或 IP 地址发送到自己的容器中
- r - 如何在 R 中创建 (x,y) 坐标