没有 Maven 且没有 Spring Boot 的 Vaadin 14

Vaadin 14 without Maven and without Spring Boot

我想在不使用 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 of Vaadin 14 with/without Spring 和不同的构建工具。 Gradle 通常用作 Maven 的替代品,可以在没有任何 CDI 的示例中找到普通的 Java 样式。