获取Vaadin版本

时间:2018-12-07 10:06:40

标签: vaadin vaadin-flow

在Vaadin 8中,我可以使用

来检索版本信息。
com.vaadin.shared.Version.getFullVersion()

在Vaadin Flow中,我找不到一种获取当前版本的方法,至少不是我期望的版本。我找到了这个

com.vaadin.flow.server.Version.getFullVersion()

,但是返回值为1.2.2,而不是预期的12.0.0。我想这是服务器版本或其他版本。

如何在vaadin流中正确获取使用的vaadin框架版本?

3 个答案:

答案 0 :(得分:3)

获取Vaadin版本的一种可能方法是使用

VaadinCoreShrinkWrap.class.getAnnotation(NpmPackage.class).version()

不是最佳选择,但应该可以使用。

此方法从Vaadin 14开始起作用。它将导致旧版本的错误。

答案 1 :(得分:2)

从10开始,Vaadin版本本身没有任何内容,甚至没有版本号标记。这只是一组经过测试可以很好地协同工作的依赖项版本。

com.vaadin.flow.server.Version.getFullVersion()给出了Vaadin Flow依赖项的版本。在大多数情况下,这是一个更相关的版本号,可用于技术目的。

Vaadin 10和Vaadin 11使用Flow 1.0.x,而Vaadin 12使用1.2.x版本。 Vaadin 13很可能会使用Flow版本1.3.x或2.0.x,具体取决于届时将包含多少更改。

答案 2 :(得分:1)

如果要显示Vaadin版本而不是Flow版本,我会看到一种实现方法,但是它需要更多代码和一些maven配置。

您应该

  • 创建一个包含行vaadin.version=${vaadin.version}的属性文件
  • 确保文件包含在maven-resourses-plugin筛选器中的资源中,并在构建配置中添加以下内容:
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/config.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <excludes>
                    <exclude>**/config.properties</exclude>
                </excludes>
            </resource>
        </resources>
  • 读取属性文件并获取版本属性的值
Properties properties = new Properties();
properties.load(MainView.class.getResourceAsStream("config.properties"));
properties.get("vaadin.version");