没有 Maven 和 Spring Boot 的 Vaadin 14

问题描述

我想在不使用 Maven 或 Spring Boot 的情况下创建 Vaadin 14 应用程序。只是一个带有嵌入式 Jetty 服务器的普通 Java 应用程序。这在过去是可能的。还有可能吗?

带有 Vaadin 6.x 和 Jetty 的旧代码:

private static void initServer(Settings settings) throws Exception,InterruptedException {
    httpPort = settings.getInt("webapp.port",8888);
    final Server server = new Server(httpPort);
    final WebAppContext webapp = new WebAppContext();
    webapp.setContextPath("/");
    webapp.setResourceBase("WebContent");
    webapp.setClassLoader(Thread.currentThread().getContextClassLoader());
    server.setHandler(webapp);
    server.start();
    server.join();
}

解决方法

是的,这是可能的,通过不使用构建工具(任何 java 构建工具。例如:maven、gradle、ant+ivy、leiningen、grape、buildr、bazel 等),您有大量的额外工作要做。 .),但这是可能的。

您将有许多 jar 需要管理,不仅在 Jetty 内,而且还有 Jetty 之外的依赖项(如各种规范的 api jar)。

然后,您将对嵌入式码头的使用进行一些更改。

您需要进行的更改取决于您打算使用的 Jetty 版本。

您从 Jetty 6.x 开始,它用于 Java EE 4 上的 Servlet 2.1。 从那以后,各种 EE 规范、HTTP 规范甚至 Java JVM 本身发生了巨大的变化,导致 Jetty 发生了变化。

,

Vaadin 本身提供 several different example projects 的 Vaadin 14 有/没有 Spring 和不同的构建工具。 Gradle 经常被用作 Maven 的替代品,可以在没有任何 CDI 的示例中找到纯 Java 风格。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...