有什么方法可以将子项目buildSrc包含到根项目的buildSrc类路径中?

时间:2019-03-09 22:27:07

标签: java gradle kotlin

在尝试使用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的类路径未设置。

所以,我很好奇,如果有人遇到这种问题,请告诉我您的想法。

0 个答案:

没有答案