Gradle多项目buildSrc未在子项目中工作

Gradle多项目buildSrc未在子项目中工作,gradle,kotlin,intellij-idea,build,dependencies,Gradle,Kotlin,Intellij Idea,Build,Dependencies,在使用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 T

在使用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
include(
    ":SoaProject1",
    ":SoaProject2"
)
project(":SoaProject1").projectDir = File("soa/SoaProject1")
project(":SoaProject2").projectDir = File("soa/SoaProject2")
object Versions {
  const val log4j = "1.2.16"
}
root settings.gradle.kts如下所示:

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
include(
    ":SoaProject1",
    ":SoaProject2"
)
project(":SoaProject1").projectDir = File("soa/SoaProject1")
project(":SoaProject2").projectDir = File("soa/SoaProject2")
object Versions {
  const val log4j = "1.2.16"
}
在SoapProject的build.gradle.kts文件中,例如,我有以下依赖项:

dependencies {
  implementation("log4j:log4j:${Versions.log4j}")
}
导入/刷新gradle项目在Intellij中工作,并下载依赖项。但是,当我试图从子项目执行渐变任务时,我得到了一个未解决的参考版本错误

Dependencies.kt包含Versions类,如下所示:

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
include(
    ":SoaProject1",
    ":SoaProject2"
)
project(":SoaProject1").projectDir = File("soa/SoaProject1")
project(":SoaProject2").projectDir = File("soa/SoaProject2")
object Versions {
  const val log4j = "1.2.16"
}
所以在我看来,gradle似乎可以找到依赖项和版本类,但由于某种原因,子项目的任务没有访问buildSrc的权限

是否有人有任何提示,可能缺少什么或我可以尝试什么

谢谢你的帮助

问候
西蒙

很抱歉回复太晚,但是问题已经解决了,正如你在第一篇帖子的评论中看到的那样

问题是,当您进行多项目设置时,gradle正在扫描文件夹。根项目中与gradle多项目相关的每个子文件夹都需要包含build.gradle/build.gradle.kts文件,即使该文件为空


这样,一切都很好,至少在IntelliJ中,gradle支持工作正常,模块创建正确。

很抱歉回复太晚,但问题已经解决,正如您在第一篇帖子的评论中看到的那样

问题是,当您进行多项目设置时,gradle正在扫描文件夹。根项目中与gradle多项目相关的每个子文件夹都需要包含build.gradle/build.gradle.kts文件,即使该文件为空


这样,一切都很好,至少在IntelliJ中,gradle支持工作正常,模块创建正确。

请检查此线程谢谢,但不幸的是,它对我没有帮助。但是,我确实注意到,当“中间”文件夹通过添加gradle.build.kts文件而成为一个项目时,它似乎可以工作。如果父项目不是直接高于一级,子项目可能会混淆?请检查此线程谢谢,但不幸的是,它没有帮助我。但是,我确实注意到,当“中间”文件夹通过添加gradle.build.kts文件而成为一个项目时,它似乎可以工作。如果父项目不是直接高于一级,子项目可能会混淆?