【问题标题】:Get Vaadin Version in flow在流程中获取 Vaadin 版本
【发布时间】:2019-05-09 02:06:52
【问题描述】:

在 Vaadin 8 中,我能够使用

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

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

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

但返回值是1.2.2,而不是预期的12.0.0。我猜是服务器版本什么的..

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

【问题讨论】:

标签: vaadin vaadin-flow


【解决方案1】:

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

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

不是最佳的,但它应该可以工作。

此方法从 Vaadin 14 开始有效。旧版本会导致错误。

【讨论】:

    【解决方案2】:

    如果您想显示 Vaadin 版本而不是 Flow 版本,我看到一个选项可以实现,但它需要更多代码和一些 maven 配置。

    你应该

    • 创建一个包含vaadin.version=${vaadin.version} 行的属性文件
    • 确保该文件包含在 maven-resources-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");
    

    【讨论】:

    • 你把&lt;resources&gt;...&lt;/resources&gt;放在POM的什么地方?另外,当您说vaadin.version=${vaadin.version} 时,您的意思是字面意义上的${vaadin.version},还是我们需要将其硬编码到属性文件本身中?那么我们可以将其保留为vaadin.version=${vaadin.version},还是需要将其替换为vaadin.version=13.0.9(当然,假设我的vaadin 版本是13.0.9)?
    • 您将其添加到 build 标记,以便 maven-resources-plugin 考虑它。这将包括过滤文件中的属性文件,对于过滤文件,${vaadin.version} 将替换为您在 pom.xml 中定义的 vaadin.version 属性的值。类似的用例,但对于 project.version 是在 this demo project 中完成的
    【解决方案3】:

    从 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,具体取决于届时将包含多大的更改。

    【讨论】:

    • Vaadin 13 使用 flow 1.4.x 而 Vaadin 14 最有可能使用 Flow 版本 1.5.x 或 2.0.x,这取决于届时将包含多大的变化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多