尽管与 WildFly 捆绑在一起,但是否有必要声明 RestEasy 依赖项?

Necessity for declaring RestEasy dependencies although bundled with WildFly?

根据 RESTEasy modules in WildFly 文档:

In WildFly, RESTEasy and the JAX-RS API are automatically loaded into your deployment's classpath if and only if you are deploying a JAX-RS application (as determined by the presence of JAX-RS annotations).

不过我不是很理解这一段。这到底是什么意思?举个例子,假设我想在 class 中使用 ResteasyClient。我的IDE告诉我必须在对应的pom.xml中添加这个依赖。但是那上面的引述又如何呢?

<dependency>
  <groupId>org.jboss.resteasy</groupId>
  <artifactId>resteasy-client</artifactId>
</dependency>

我的 pom.xml 已经包含这个:

<dependency>
    <groupId>org.wildfly.bom</groupId>
    <artifactId>wildfly-jakartaee8-with-tools</artifactId>
    <version>20.0.1.Final</version>
    <scope>import</scope>
    <type>pom</type>
</dependency>

当查看 this BOM 时,好像 resteasy-client 已经包含在内了?

My IDE tells me that I must add this dependency in the corresponding pom.xml

是的,如果你使用它的 API,你必须在你的 pom.xml 中声明这个依赖,但你只需要 provided-scope,因为正如文档所说,它已包含在部署的类路径中。如果你只使用wildfly-jakartaee8中定义的标准api,则不需要这个依赖。