我可以在一个Maven项目中使用两个Vaadin版本吗(Vaadin7和Vaadin8)

时间:2019-04-08 11:15:33

标签: java maven vaadin

我有一个与 Dropwizard和Vaadin7 一起工作的项目。 我需要在现有环境中使用 Vaadin8 而不删除vaadin7代码。 我可以同时使用Vaadin7和Vaadin8来运行我的项目吗? 由于我是Vaadin的新手,有人可以为我提供一些有关如何解决此问题的指导吗?

<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>
</dependency>

这是我当前的vaadin配置

2 个答案:

答案 0 :(得分:5)

您不能在Maven中使用相同依赖项的两个版本,它将使用第一个。

只要您在代码中未使用社区添加,将版本升级到8就不会有问题。

我为您提供了一个很好的指南,以了解如何升级版本: Guide to upgrade vaadin

答案 1 :(得分:3)

如上所述,您无法在maven中指定两个具有相同依赖项的版本,但是在这种特殊情况下,您是否考虑过将兼容性软件包与Vaadin 8 Migrating to Vaadin 8一起使用?然后,您可以使用*.v7.*导入来访问Vaadin 7框架所需的类。就像上面的链接中所述:

  

对兼容性包中类的唯一更改是其类路径的更改。所有兼容性类都可以在com.vaadin.v7。*下找到。例如,假定已将项目依赖项设置为包括兼容性变体,那么可以通过导入import com.vaadin.v7.ui.TextField获得兼容性TextField,如上一节所述。

这不是您要查找的确切解决方案,但希望至少可以有所帮助。

P.S。如果尚未将附件移植到Vaadin8,则可能是该路径出现的问题。然后,您将需要更新我们自己的依赖项并替换不兼容的依赖项。