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

KMM问题:无法从其他模块引用shared模块commonMain源码集类

问题:引入Shared模块后无法导入类,IDE重复提示添加依赖

在Quarkus Kotlin项目中,已通过Gradle引入:shared模块依赖,但无法导入该模块中的类,IDE仍提示需添加相同依赖。

当前Gradle配置(主模块)

plugins {
    kotlin("jvm") version "1.8.20"
    kotlin("plugin.allopen") version "1.8.20"
    id("io.quarkus")
}

repositories {
    mavenCentral()
    mavenLocal()
}

val quarkusPlatformGroupId: String by project
val quarkusPlatformArtifactId: String by project
val quarkusPlatformVersion: String by project

dependencies {
    // 移除该配置会报错,因此保留
    implementation(project(path = ":shared", configuration = configurations.default.name)) 
    // ...其他依赖
}

// ...其他配置

解决步骤

1. 检查Shared模块的Gradle配置

  • 确保:shared模块是标准的JVM可依赖库:
    • 插件中需包含kotlin("jvm"),如果是Quarkus模块,需确认其输出Jar可被其他模块引用。Quarkus默认的quarkusBuild任务生成的是运行时优化Jar,可能需要配置java-library插件来管理api/implementation依赖,或者指定正确的依赖配置。
    • 若:shared是Quarkus模块,尝试将主模块的依赖配置改为:
      implementation(project(":shared", "apiElements"))
      
      或
      implementation(project(":shared", "quarkusRuntime"))
      

2. 清理并刷新Gradle缓存

  • 执行本地Gradle命令,清理构建缓存并刷新依赖:
    ./gradlew clean build --refresh-dependencies
    
  • 在IDE中执行Gradle项目刷新(如IntelliJ点击Gradle面板的刷新按钮)

3. 修复IDE同步问题

  • 若使用IntelliJ IDEA,尝试清理IDE缓存并重启:

    File -> Invalidate Caches... -> 选择Invalidate and Restart

  • 查看Gradle控制台或IDE Event Log,确认是否有未发现的同步错误

4. 简化依赖配置写法

  • 移除configuration = configurations.default.name,默认情况下implementation(project(":shared"))会自动使用模块的正确默认配置。如果移除后报错,优先解决:shared模块的配置问题(比如缺少必要插件、未生成可依赖的Jar),而非保留错误配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:35:12