我的 Java EE 或 Jakarta EE 版本是什么?

What is my version of JavaEE or JakartaEE?

但是,我不清楚如何找到我的应用程序使用的 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