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

Vaadin 23.3.19 Gradle插件JNA与Oshi依赖冲突求助

Vaadin 23.3.19 Gradle插件类路径冲突问题解决

问题原因解析

你遇到的插件类路径冲突,核心原因是Gradle插件的类加载并非完全隔离:

  • Vaadin的vaadinBuildFrontend任务执行时,默认会包含项目的运行时类路径,而非仅使用插件自身的类路径。
  • Vaadin 23.3.19本身依赖特定版本的oshi和jna,如果你强行指定的版本(oshi 6.4.1、jna 5.13.0)与插件内置依赖版本不兼容,就会触发类方法缺失错误(比如Memory.close()是JNA 5.x新增的方法,若插件依赖旧版JNA就会找不到)。
  • 仅在项目依赖中统一版本无效,因为插件的buildscript类路径仍会加载自身依赖的旧版本,与项目依赖的新版本产生冲突。

解决方案步骤

1. 排查插件与项目的依赖版本

先执行Gradle命令查看插件和项目依赖的实际版本,定位冲突点:

./gradlew dependencies --configuration buildscript
./gradlew dependencies --configuration vaadinRuntimeClasspath

找到com.github.oshi:oshi-core和net.java.dev.jna:jna/jna-platform在两个配置中的版本差异。

2. 统一插件与项目的依赖版本

在buildscript中排除插件自带的冲突依赖,手动添加兼容的统一版本,确保插件和项目使用同一套依赖:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("com.vaadin:vaadin-gradle-plugin:23.3.19") {
            // 排除插件自带的冲突依赖
            exclude group: 'com.github.oshi', module: 'oshi-core'
            exclude group: 'net.java.dev.jna', module: 'jna'
            exclude group: 'net.java.dev.jna', module: 'jna-platform'
        }
        // 添加兼容的统一版本
        classpath("com.github.oshi:oshi-core:6.4.1")
        classpath("net.java.dev.jna:jna:5.13.0")
        classpath("net.java.dev.jna:jna-platform:5.13.0")
    }
}

同时在项目依赖中保持版本一致(如果项目需要直接依赖这些库):

dependencies {
    implementation("com.github.oshi:oshi-core:6.4.1") {
        exclude group: 'net.java.dev.jna'
    }
    implementation("net.java.dev.jna:jna:5.13.0")
    implementation("net.java.dev.jna:jna-platform:5.13.0")
    // 其他Vaadin依赖...
}

3. 强制vaadinBuildFrontend使用插件类路径

修改任务配置,让它仅使用插件的buildscript类路径,避免加载项目依赖的冲突版本:

tasks.named('vaadinBuildFrontend') {
    classpath = project.buildscript.configurations.classpath
}

4. 验证修复

执行./gradlew clean vaadinBuildFrontend,检查是否还存在Memory.close()不存在的错误。

内容的提问来源于stack exchange,提问作者Martin Ahrer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:14:50