Vaadin20: 从 Pom 依赖中扫描 Java 代码

Vaadin20: Scan Java code from Pom dependency

我想在使用 Vaadin @Endpoint 注释(来自 com.vaadin.flow.server.connect.Endpoint)的 Maven 工件中放置 Java class,以使用此 class 在多个 Vaadin 项目中。

这是一个简单的例子 class:

import com.vaadin.flow.server.connect.Endpoint;
import lombok.RequiredArgsConstructor;
import java.util.Optional;

@Endpoint
@RequiredArgsConstructor
public class SupportInfoEndpoint {

  public Optional<String> getSupportInfo(){
    return Optional.of("mailto:support@my.corp");
  }
}

Maven 工件包含 class 的源代码。我必须做什么才能通过 Vaadin 构建过程在使用项目中扫描此 class,以便

有可能吗?

遗憾的是,目前还不可能,但一旦 #9010 实施后就会实现。

据我了解,这是为 Fusion 团队实施的最优先功能之一。

正如Erik所说,它将用#9010实现。

但是有一个解决方法取决于一些限制。如果您在同一个 jar 中拥有端点所需的每个 class,则可以通过调用 vaadin-maven-plugin 的目标“build-frontend”在同一个 jar 中触发打字稿生成,然后生成打字稿并将它们移动到 META-INF/resources/frontend 只是一些专家魔法的问题(类似于正在做的事情 here)。然后你就可以将端点打包到 jar 中了。

为了在项目中注册端点,您需要做一些类似于 this class 正在做的事情,基本上是一个 ServiceInitListener 将执行 [=] 的方法 registerEndpoint 14=] 通过使用反射。