You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin 14.9.7生产构建编译缓慢问题咨询

问题分析与解决方案

为什么升级后构建变慢?

  1. 许可证检查逻辑调整:Vaadin 14.9.x版本对Pro组件的许可证验证机制做了更新,相比14.8.x会更频繁地扫描所有依赖的Pro组件(即使项目未实际使用),且每次检查时会读取系统硬件UUID(/sys/devices/virtual/dmi/id/product_uuid)来绑定许可证。在非物理机环境(如虚拟机、容器)中,读取该文件的操作本身存在卡顿,多个Pro组件的检查累加后导致总耗时剧增。
  2. 缓存机制变化:升级后许可证检查的缓存策略可能发生调整,原本14.8.x中有效的近期检查缓存,在14.9.x中未被正确复用,导致部分组件重复执行完整的许可证验证流程。

加快构建速度的办法

1. 跳过未使用Pro组件的许可证检查

在Maven的vaadin-maven-plugin配置中,明确指定项目实际使用的Pro组件,排除未用到的组件,减少扫描和验证次数:

<plugin>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-maven-plugin</artifactId>
    <version>14.9.7</version>
    <configuration>
        <!-- 仅包含项目实际使用的Pro组件包 -->
        <includedPackages>
            <package>com.vaadin.component.gridpro</package>
            <!-- 按需添加其他用到的Pro组件包 -->
        </includedPackages>
        <!-- 或者直接排除未使用的Pro组件包 -->
        <excludedPackages>
            <package>com.vaadin.component.richtexteditor</package>
            <!-- 按需添加未用到的Pro组件包 -->
        </excludedPackages>
    </configuration>
</plugin>

2. 替代UUID读取,避免系统文件卡顿

设置环境变量或Maven系统属性,直接指定固定的机器标识,替代读取/sys/devices/virtual/dmi/id/product_uuid的操作:

  • Linux/macOS终端临时设置:
    export VAADIN_LICENSE_MACHINE_ID="your-custom-machine-id"
    
  • Windows命令行临时设置:
    set VAADIN_LICENSE_MACHINE_ID=your-custom-machine-id
    
  • 或在Maven插件中配置系统属性:
    <plugin>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-maven-plugin</artifactId>
        <version>14.9.7</version>
        <configuration>
            <systemProperties>
                <property>
                    <name>vaadin.license.machine.id</name>
                    <value>your-custom-machine-id</value>
                </property>
            </systemProperties>
        </configuration>
    </plugin>
    

3. 延长许可证检查缓存时长

通过系统属性调整许可证检查的缓存有效期,减少重复验证的频率:

<plugin>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-maven-plugin</artifactId>
    <version>14.9.7</version>
    <configuration>
        <systemProperties>
            <!-- 设置缓存时长为7天(单位:毫秒) -->
            <property>
                <name>vaadin.license.check.cache.duration</name>
                <value>604800000</value>
            </property>
        </systemProperties>
    </configuration>
</plugin>

4. 确认许可证安装位置

确保Pro许可证文件(pro.license)放置在正确位置,让插件能直接读取而无需重复验证:

  • 全局安装:用户主目录下的.vaadin文件夹(~/.vaadin/pro.license)
  • 项目级安装:项目的src/main/resources目录下

内容的提问来源于stack exchange,提问作者Giuseppe Di Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 09:35:21