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,以便
- 生成前端对应的TypeScript代码
- class 包含在 Spring- 引导应用程序中(因此端点实际上在 运行 时间可用)
有可能吗?
遗憾的是,目前还不可能,但一旦 #9010 实施后就会实现。
据我了解,这是为 Fusion 团队实施的最优先功能之一。
正如Erik所说,它将用#9010实现。
但是有一个解决方法取决于一些限制。如果您在同一个 jar 中拥有端点所需的每个 class,则可以通过调用 vaadin-maven-plugin
的目标“build-frontend”在同一个 jar 中触发打字稿生成,然后生成打字稿并将它们移动到 META-INF/resources/frontend
只是一些专家魔法的问题(类似于正在做的事情 here)。然后你就可以将端点打包到 jar 中了。
为了在项目中注册端点,您需要做一些类似于 this class 正在做的事情,基本上是一个 ServiceInitListener
将执行 [=] 的方法 registerEndpoint
14=] 通过使用反射。
我想在使用 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,以便
- 生成前端对应的TypeScript代码
- class 包含在 Spring- 引导应用程序中(因此端点实际上在 运行 时间可用)
有可能吗?
遗憾的是,目前还不可能,但一旦 #9010 实施后就会实现。
据我了解,这是为 Fusion 团队实施的最优先功能之一。
正如Erik所说,它将用#9010实现。
但是有一个解决方法取决于一些限制。如果您在同一个 jar 中拥有端点所需的每个 class,则可以通过调用 vaadin-maven-plugin
的目标“build-frontend”在同一个 jar 中触发打字稿生成,然后生成打字稿并将它们移动到 META-INF/resources/frontend
只是一些专家魔法的问题(类似于正在做的事情 here)。然后你就可以将端点打包到 jar 中了。
为了在项目中注册端点,您需要做一些类似于 this class 正在做的事情,基本上是一个 ServiceInitListener
将执行 [=] 的方法 registerEndpoint
14=] 通过使用反射。