我的 Java EE 或 Jakarta EE 版本是什么?
What is my version of JavaEE or JakartaEE?
我知道如何查找我正在使用的 JDK 版本。我可以在命令行中发出 java -version
,它会向我打印版本。
我知道如何找到我正在使用的 Eclipse 版本。我可以去
Eclipse 菜单 > Help > About Eclipse 它会告诉我版本
Eclipse.
我知道我使用的是哪个版本的 JUnit。我可以打开我的 pom.xml 文件
我的根项目并寻找 <junit.version>
节。
我也知道我使用的是什么 WAS Liberty 服务器。我可以转到 Eclipse 服务器,右键单击我的服务器、属性、产品信息,它告诉我我使用的是 21.0.0.4 版的 WebSphere Application Server。
但是,我不清楚如何找到我的应用程序使用的 JavaEE and/or JakartaEE 版本。
如何找到我的应用程序使用的 JavaEE 或 JakartaEE 平台的版本?
我正在使用 Maven,但在我的 pom.xml 文件中没有看到任何类似“javaee”或“jakartaee”的内容。
通常,如果您正在使用 maven 或 gradle 开发 JavaEE/JakartEE 应用程序,您将依赖于 gradle 配置或 maven 中的 javaEE/jakartaEE 依赖项pom.xml 文件。
由于我有更多使用 maven 的经验,我将使用 maven 示例进行详细说明。
所以基本上你会有这样的依赖:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
使用 maven 你会需要它,所以它知道它需要依赖关系来解析 java-ee 特性。比如@Inject注解,还有CDI注解和capabilities。
但是,作为您正在为其开发的应用程序服务器,已经打包了这些 jar,您不希望将默认(=编译)范围用于此依赖项,因为这会使您的应用程序变得不必要地大,并可能导致不同类加载器的问题。
我在各种项目中看到的另一个选择是,不是直接向 javaee 添加依赖项,而是导入范围为“import”的应用程序的 bom(物料清单)并键入您自己的 pom 的 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 中定义的依赖项,然后会告诉您应用程序服务器提供的依赖项。
可以找到有关物料清单的更多信息here
我知道如何查找我正在使用的 JDK 版本。我可以在命令行中发出
java -version
,它会向我打印版本。我知道如何找到我正在使用的 Eclipse 版本。我可以去
Eclipse 菜单 > Help > About Eclipse 它会告诉我版本
Eclipse.我知道我使用的是哪个版本的 JUnit。我可以打开我的 pom.xml 文件 我的根项目并寻找
<junit.version>
节。我也知道我使用的是什么 WAS Liberty 服务器。我可以转到 Eclipse 服务器,右键单击我的服务器、属性、产品信息,它告诉我我使用的是 21.0.0.4 版的 WebSphere Application Server。
但是,我不清楚如何找到我的应用程序使用的 JavaEE and/or JakartaEE 版本。
如何找到我的应用程序使用的 JavaEE 或 JakartaEE 平台的版本? 我正在使用 Maven,但在我的 pom.xml 文件中没有看到任何类似“javaee”或“jakartaee”的内容。
通常,如果您正在使用 maven 或 gradle 开发 JavaEE/JakartEE 应用程序,您将依赖于 gradle 配置或 maven 中的 javaEE/jakartaEE 依赖项pom.xml 文件。
由于我有更多使用 maven 的经验,我将使用 maven 示例进行详细说明。 所以基本上你会有这样的依赖:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
使用 maven 你会需要它,所以它知道它需要依赖关系来解析 java-ee 特性。比如@Inject注解,还有CDI注解和capabilities。
但是,作为您正在为其开发的应用程序服务器,已经打包了这些 jar,您不希望将默认(=编译)范围用于此依赖项,因为这会使您的应用程序变得不必要地大,并可能导致不同类加载器的问题。
我在各种项目中看到的另一个选择是,不是直接向 javaee 添加依赖项,而是导入范围为“import”的应用程序的 bom(物料清单)并键入您自己的 pom 的 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 中定义的依赖项,然后会告诉您应用程序服务器提供的依赖项。
可以找到有关物料清单的更多信息here