GWT模块com.vaadin.v7.Vaadin7WidgetSet未找到。

7

我已经成功将我的现有项目从Vaadin 7转换为Vaadin 8。项目中没有错误,但是当我使用mvn install构建项目时,出现以下错误:GWT模块com.vaadin.v7.Vaadin7WidgetSet在项目源或资源中未找到。

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:51 min
[INFO] Finished at: 2017-12-19T12:31:15+05:30
[INFO] Final Memory: 94M/1007M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.vaadin:vaadin-maven-plugin:8.0.6:compile (default) on project XXX: GWT Module com.vaadin.v7.Vaadin7WidgetSet not found in project sources or resources. -> [Help 1]

1
请附上 pom.xml 文件。 - Dawid Fieluba
1个回答

1

这里开始

检查以下内容:

您必须将vaadin-server依赖项替换为vaadin-compatibility-server

如果您正在使用默认的widgetset(您没有自己编译它):

请将vaadin-client-compiled依赖项替换为vaadin-compatibility-client-compiled

在您的UI实现中添加@Widgetset("com.vaadin.v7.Vaadin7WidgetSet")

如果您正在使用自定义的widgetset:

请将vaadin-client依赖项替换为vaadin-compatibility-client

重新编译它。

在您的POM中,我看到了这些行:

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-server</artifactId>
        <version>7.5.10</version>
    </dependency>

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-themes</artifactId>
        <version>7.5.10</version>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client-compiled</artifactId>
        <version>7.5.10</version>
    </dependency>

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client</artifactId>
        <version>7.5.10</version>
        <exclusions>
            <exclusion>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

这样做不起作用,您不能包含任何7版本的组件、服务器或客户端。唯一有效的方法是使用v8兼容性内容。

我在pom中包含了所有的兼容依赖,但我也保留了现有依赖以及它们的版本,并从新的兼容性依赖中排除了这些依赖关系。 这种方法是否导致了现有的问题? - Swagat
展示你的pom.xml文件。 - André Schild
这是POM.xml文件。 - Swagat
请在您的pom.xml文件中删除所有Vaadin 7.x版本的依赖。 - André Schild
这是一个相当庞大的项目,如果我删除7.x依赖项,将会影响多个文件。因此,我不能承担删除这些依赖项的风险。有没有办法可以在保留7.x依赖项的同时解决8.x出现的错误呢? - Swagat
这个问题很简单解决。只需将所有对应的UI元素和数据元素的导入替换为兼容包即可。例如com.vaadin.ui.TextField变成com.vaadin.v7.ui.TextField。甚至有一个maven任务可以为您完成此操作。https://vaadin.com/docs/framework/migration/migrating-to-vaadin8.html 在此之后,可能还需要进行一些最小的修复,但至少应该可以编译和运行。 - André Schild

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接