使用 buildSrc 时,我正在努力从子项目中执行 gradle 任务。
项目结构如下所示:
root
buildSrc
src
main
kotlin
Dependencies.kt
build.gradle.kts
soa
SoaProject1
settings.gradle.kts
build.gradle.kts
SoaProject2
settings.gradle.kts
build.gradle.kts
tools
ToolProject1
ToolProject2
settings.gradle.kts
build.gradle.kts
根 settings.gradle.kts 如下所示:
include(
":SoaProject1",
":SoaProject2"
)
project(":SoaProject1").projectDir = File("soa/SoaProject1")
project(":SoaProject2").projectDir = File("soa/SoaProject2")
在 SoaProject 的 build.gradle.kts 文件之一中,例如我有以下依赖:
dependencies {
implementation("log4j:log4j:${Versions.log4j}")
}
导入/刷新 gradle 项目正在 Intellij 中运行,并且下载了依赖项。但是当我尝试从子项目执行 gradle 任务时,我得到一个 Unresolved reference 版本 错误。
Dependencies.kt 包含 Versions 类,它看起来像这样:
object Versions {
const val log4j = "1.2.16"
}
所以在我看来,gradle 可以找到依赖项和 Versions 类,但由于某种原因,子项目的任务无权访问 buildSrc?
有没有人暗示可能缺少什么或我可以尝试什么?
感谢您的帮助!
问候
西蒙
最佳答案
很抱歉回复晚了,但正如您在第一篇文章的评论中看到的那样,问题得到了解决。
问题是,当您进行多项目设置时,gradle 正在扫描分层文件夹。与 gradle 多项目相关的根项目的每个子文件夹都需要包含一个 build.gradle/build.gradle.kts 文件,即使它是空的。
这样,一切都运行良好,至少在 IntelliJ 中,gradle 支持运行良好并且模块创建正确。
关于Gradle多项目buildSrc在子项目中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60310891/