gpt4 book ai didi

scala - IDEA : scala multi module projet 中的模块资源根

转载 作者:行者123 更新时间:2023-12-04 03:53:01 28 4
gpt4 key购买 nike

我正在 scala 中处理一个多模块 IDEA 项目。

该项目包含 16 个模块。

所有这些模块都基于相同的通用 sbt 配置:

  resourceDirectory in Compile := baseDirectory.value / "src" / "main" / "resources",
resourceDirectory in Test := baseDirectory.value / "src" / "test" / "resources",
resourceDirectory in IntegrationTest := baseDirectory.value / "src" / "it" / "resources",

我的问题是,当将项目与 IDEA 同步时,16 个模块中的 2 个始终无法将其 src/main/resources 文件夹标记为 resources root,而是将其标记为 测试资源根目录

我可以手动更改它,但每次重新导入项目都会重新标记它们。

在深入研究 sbt 之后,我发现从 sbt 的角度来看:

  • 对于所有16个模块,src/main/resources是编译的资源目录
  • 对于所有 16 个模块,src/main/resources 和 src/test/resources 都是用于测试的资源目录,我觉得这有点奇怪,但我不确定。

谢谢!

会出现问题的最小 build.sbt:

import sbt.Keys.resourceDirectory


lazy val coreSettings = Seq(
organization := "C4stor",
scalaVersion := "2.12.6",
resourceDirectory in Compile := baseDirectory.value / "src" / "main" / "resources",
resourceDirectory in Test := baseDirectory.value / "src" / "test" / "resources",
resourceDirectory in IntegrationTest := baseDirectory.value / "src" / "it" / "resources"
)

lazy val `module_one` = project
.in(file("module_one"))
.settings(
coreSettings
)
.configs(IntegrationTest)

如果您在 module_one 目录中创建实际的 src/main/resources 和 src/test/resources 文件夹,IDEA 将错误地标记 src/main/resources

最佳答案

每个具有 .configs(IntegrationTest) 的模块还需要在其设置中具有 Defaults.itSettings,以便 idea 正确映射资源文件夹。

在给定的例子中,它变成了

lazy val `module_one` = project
.in(file("module_one"))
.settings(
coreSettings, Defaults.itSettings
)
.configs(IntegrationTest)

关于scala - IDEA : scala multi module projet 中的模块资源根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64167665/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com