在尝试使用Gradle移植一个稍微复杂的构建设置(从古老的Gradle版本迁移)并想使用Kotlin-DSL时,我遇到了无法“包含” /“编译” /“依赖”的问题子项目的buildSrc类路径上。
参考项目:
到目前为止,我已经使用以下pr迁移了几乎所有SpongeAPI:
https://github.com/SpongePowered/SpongeAPI/pull/1980/files
文件结构的设置方法如下:
SpongeForge (root project)
| - SpongeCommon
| | - SpongeAPI
| | | - build.gradle
| | | - gralde/
| | | | - sponge.gradle
| | | | - deploy.gradle
| | - Gradle/
| | | - Minecraft.gradle (Defines some gradle plugin to set up Minecraft dependencies)
| | | - implementation.gradle (sets up SpongeForge/SpongeVanilla to depend on common)
| | - build.gradle
| - build.gradle
通过使用Kotlin-DSL的SpongeAPI设置,我设法将很多东西提取到gradle插件中,但是常量定义了各种字符串依赖项(例如依赖项版本,组等)
我遇到的问题是,当我开始迁移SpongeCommon时,向SpongeCommon添加buildSrc会导致SpongeAPI的buildSrc插件无法编译,或者SpongeAPI的构建脚本无法编译,因为SpongeAPI / buildSrc不再在其中类路径。
我想解决这个问题的一种非常愚蠢的方法是设置一个依赖任务,将SpongeAPI / buildSrc / src / main / kotlin的内容复制到SpongeCommon / buildSrc / src / main / kotlin,但是后来我遇到以下问题:a)复制文件,b)尝试将SpongeAPI的buildSrc文件使用IDE,因为该buildSrc的类路径未设置。
所以,我很好奇,如果有人遇到这种问题,请告诉我您的想法。