2

我刚开始使用 Wildfly 服务器版本 17,但我一直在寻找我应该在我的 pom 文件中提供的依赖项。

我没有在文档中找到任何显示提供的依赖项及其正确版本的内容。

作为一个例子,这是我想要的:

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

我想知道我从哪里获得服务器提供的所有依赖项以供将来使用。

4

1 回答 1

1

我被困在我的 pom 文件中提供的我应该提到的依赖项上

您需要在pom.xml中包含的所有内容都<dependency>显示在您的问题中。

需要明确的是,您通常不希望或不需要“获取所有依赖项”。您所需要的只是让您的代码针对 EE 7 API 的 Web 配置文件进行编译,而<dependency>在您的问题中将实现这一点。通过指定<scope>provided</scope>,您明确声明目标运行时(在您的情况下为 Wildfly 17)将提供所需的 Java EE 代码,并且不应包含在应用程序的war文件中。

而且,如果您确实在应用程序的war文件中包含任何 EE 代码,则在加载应用程序时,您可能会在 Wildfly 服务器上遇到类加载器冲突。

有关详细信息,请参阅Java EE 7 中您需要的唯一一个依赖项

我没有在文档中找到任何显示提供的依赖项及其正确版本的内容。

EE 7 中 Web 配置文件的内容在 JSR-000342 中正式定义,您可以从这里查看或下载文档 WebProfile.pdf。第 15 页提供了 EE 7 Web 配置文件所需的信息:

The following technologies are required components of the Web Profile:
• Servlet 3.1
• JavaServer Pages (JSP) 2.3
• Expression Language (EL) 3.0
• Debugging Support for Other Languages (JSR-45) 1.0
• Standard Tag Library for JavaServer Pages (JSTL) 1.2
• JavaServer Faces (JSF) 2.2
• Java API for RESTful Web Services (JAX-RS) 2.0
• Java API for WebSocket (WebSocket) 1.0
• Java API for JSON Processing (JSON-P) 1.0
• Common Annotations for the Java Platform (JSR-250) 1.2
• Enterprise JavaBeans (EJB) 3.2 Lite
• Java Transaction API (JTA) 1.2
• Java Persistence API (JPA) 2.1
• Bean Validation 1.1
• Managed Beans 1.0
• Interceptors 1.2
• Contexts and Dependency Injection for the Java EE Platform 1.1
• Dependency Injection for Java 1.0

我想知道我从哪里获得服务器提供的所有依赖项以供将来使用。

如果您想获取 Java EE 的某些特定组件的代码:

  • 查找给定 EE 版本和配置文件的各个组件的列表。使用上面显示的 EE 7 Web配置文件列表,或Wikipedia 方便地列出EE 6、EE 7 和 EE 8的Web配置文件的组件及其版本。
  • 对于您想要的任何 EE 组件/版本,只需在 Maven 的网站上搜索,然后单击jar链接以下载相应的jar文件。

例如:

  • JSR-000342 和 Wikipedia 显示 EE 7 Web配置文件使用 1.1 版的Bean Validation
  • 在 Maven 的网站上搜索Bean Validation,然后从 Bean Validation API 页面上显示的版本列表中,单击指向所需特定版本的链接。在您的情况下,这可能是1.1.0.Final
  • Bean Validation API » 1.1.0.Final页面上,单击jar链接下载名为validation-api-1.1.0.Final.jar的jar文件。您也可以将所需的内容复制到剪贴板。<dependency>
于 2019-08-31T03:29:36.433 回答