IDEA 中的模块资源根:scala multi module projet
Modules resources root in IDEA : scala multi module projet
我正在 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
,而是将其标记为 [=13] =]
我可以手动更改它,但每次重新导入项目都会重新标记它们。
在深入研究 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 项目。
该项目包含 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
,而是将其标记为 [=13] =]
我可以手动更改它,但每次重新导入项目都会重新标记它们。
在深入研究 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)