为什么我的 java api 不适用于 gradle 'from components.java' 而 'from components.kotlin'

Why my java api won't work with gradle 'from components.java' but with 'from components.kotlin'

使用存储库 https://repo.theprogramsrc.xyz/repository/maven-public/ 如果您导入工件 xyz.theprogramsrc:simplecoreapi:0.0.1.1-SNAPSHOT 并尝试导入 class xyz.theprogramsrc.simplecoreapi.global.module.Module 您会注意到 IDE 没有'识别导入,但依赖项在依赖项列表中。

现在,如果您尝试使用版本 0.0.1.2-SNAPSHOT 进行相同操作,您会发现现在可以使用导入了。

有什么区别?第 124 行 from components.java 不起作用,但 from components.kotlin 起作用,我的问题是如果我使用 components.kotlin 它不包含阴影也不包含实现,只包含源代码,但是如果我使用 components.java 它包含所有内容,但 ide 将无法识别导入。我认为这可能是 Kotlin 和 shadowjar 的问题...

这里是我的项目供参考:GitHub: TheProgramSrc/SimpleCoreAPI

编辑

我刚刚确认这个问题是一个 IntelliJ 问题,为什么?我真的不知道,一旦我创建的问题可用,我会 post 这里的答案:

https://youtrack.jetbrains.com/issue/IDEA-284719

可以通过向您的 shadowJar 任务添加以下行来解决此问题:

shadowJar {
    // ...
    mergeServiceFiles()
    exclude('**/*.kotlin_metadata')
    exclude('**/*.kotlin_builtins')
    // ...
}

感谢以下评论,我解决了我的问题:https://youtrack.jetbrains.com/issue/KT-25709#focus=Comments-27-5180542.0-0