使用 Maven 创建 Vaadin 项目时缺少 META-INF 和 WEB-INF

Missing META-INF and WEB-INF when creating Vaadin project with Maven

我使用 7.5.78.9.4

版本在 IntelliJ IDE 中使用 Maven 工件 vaadin-archetype-application 创建了两个新的 Vaadin 项目

在这两种情况下,我都缺少 src/main/webapp 中的 WEB-INFMETA-INF 我只有 VAADIN 文件夹,其中包含带有 .scss 文件的主题。

丢失的文件夹在哪里?
根据官方文档,它们应该在那里:
https://vaadin.com/docs/v7/framework/getting-started/getting-started-maven.html

这是 Maven 输出:

[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO] 
[INFO] 
[INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] Archetype repository not defined. Using the one from [com.vaadin:vaadin-archetype-application:14.1.4] found in catalog remote
Downloading from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-archetype-application/8.9.4/vaadin-archetype-application-8.9.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-archetype-application/8.9.4/vaadin-archetype-application-8.9.4.pom (3.1 kB at 47 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-archetypes/8.9.4/vaadin-archetypes-8.9.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-archetypes/8.9.4/vaadin-archetypes-8.9.4.pom (1.9 kB at 37 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-parent/1.1.0/vaadin-parent-1.1.0.pom
Downloaded from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-parent/1.1.0/vaadin-parent-1.1.0.pom (8.5 kB at 167 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-archetype-application/8.9.4/vaadin-archetype-application-8.9.4.jar
Downloaded from central: https://repo.maven.apache.org/maven2/com/vaadin/vaadin-archetype-application/8.9.4/vaadin-archetype-application-8.9.4.jar (24 kB at 170 kB/s)
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: vaadin-archetype-application:8.9.4
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: org.example
[INFO] Parameter: artifactId, Value: Vaadin8Test
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: org.example
[INFO] Parameter: packageInPathFormat, Value: org/example
[INFO] Parameter: package, Value: org.example
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: org.example
[INFO] Parameter: themeName, Value: mytheme
[INFO] Parameter: uiName, Value: MyUI
[INFO] Parameter: artifactId, Value: Vaadin8Test
[INFO] Project created from Archetype in dir: C:\<some path>\Temp\archetypetmp\Vaadin8Test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.217 s
[INFO] Finished at: 2020-01-15T12:25:03+01:00
[INFO] ------------------------------------------------------------------------

图片简直过时了。您可以自己创建这些文件夹,if/when 您需要它们。

以下是我的推测为什么它已经过时


Servlet 3.0 带来了对 @WebServlet 注释的支持。这意味着如果使用注释,则不再需要 web.xml 文件。在生成的示例中,这正是使用的内容:

@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
    }

Vaadin 8 从一开始就使用它,但 Vaadin 7 规范在某个时候进行了更新。因此图片是旧版本留下的。

与你的问题无关,但是V7已经过时了。 V8 的官方支持将于 2022 年结束。如果你正在开始一个新项目,我建议从 V14 开始,它是一个 LTS 版本。

编辑: Vaadin 7 中使用 servlet 2.4 的最后一个分支是 7.4