【问题标题】:Why sbt-idea doesn't generate the IDEA module for my build project为什么 sbt-idea 不为我的构建项目生成 IDEA 模块
【发布时间】:2013-09-16 20:22:48
【问题描述】:

我有一个具有这种结构的多模块 SBT 项目:

➜  Stample git:(split-in-sbt-modules) ✗ tree -L 1
.
├── project
├── stample-core
├── stample-search
├── stample-web
└── target

构建定义非常简单,如下所示:

  lazy val stampleWebProject = play.Project("stample-web", appVersion, appDependencies,path = file("stample-web"))
    .dependsOn(stampleCoreProject,stampleSearchProject)
    .aggregate(stampleCoreProject,stampleSearchProject)

  lazy val stampleCoreProject = Project(id = "stample-core",base = file("stample-core"))

  lazy val stampleSearchProject = Project(id = "stample-search",base = file("stample-search"))

我想知道为什么当我使用 sbt-idea 插件生成 IDEA 项目文件时,构建定义 /project 没有作为模块导入。

似乎应该是这样,而且我很确定我已经看到它在我自己的项目上运行,但不能让它再次运行 :( 顺便说一下,对于新创建的 Play2 项目,当我们使用插件来生成 IDEA 文件,该项目也被导入为具有适当类路径的 IDEA 模块。

这个issue 似乎说这是预期的默认行为。

我使用的是 v 1.5.1,但尝试了旧版本,它也不起作用。

当我运行gen-idea 命令时,我得到:

[info] Excluding folder .ideacalaz-core_2.10;7.0.0 ...                            
[info] Excluding folder .idea_modules
[info] Excluding folder target
[info] Excluding folder target
[info] Created /home/sebastien/Bureau/Stample/.idea/IdeaProject.iml
[info] Created /home/sebastien/Bureau/Stample/.idea
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-core/.idea
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-core/.idea_modules
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-core/target
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-core/target
[info] Created /home/sebastien/Bureau/Stample/.idea_modules/stample-core.iml
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-search/.idea
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-search/.idea_modules
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-search/target
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-search/target
[info] Created /home/sebastien/Bureau/Stample/.idea_modules/stample-search.iml
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/.idea
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/.idea_modules
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/cache
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/cache
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/classes
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/classes
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/classes_managed
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/classes_managed
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/native_libraries
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/native_libraries
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/resolution-cache
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/resolution-cache
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/resource_managed
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.10/resource_managed
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.9.2
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/scala-2.9.2
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/streams
[info] Excluding folder /home/sebastien/Bureau/Stample/stample-web/target/streams
[info] Created /home/sebastien/Bureau/Stample/.idea_modules/stample-web.iml

谁能解释我为什么没有创建项目模块?

【问题讨论】:

  • 你考虑过使用official SBT plugin吗?它确实存在问题(例如,还没有嵌入式 SBT 控制台),但它在不断改进。
  • @VladimirMatveev 我已经检查过了,但文档没有提到您可以导入 Scala 构建,他们只谈论 .sbt 文件。我试过了,但没有用,或者我错过了什么......
  • 我不知道这个,但我认为你可以创建一个空的 sbt 文件并尝试导入它。

标签: scala sbt sbt-idea


【解决方案1】:

所以最后,如果父文件夹不包含在 SBT 项目中,插件似乎不会生成构建定义模块。

添加这一行似乎解决了我所有的问题:

lazy val stampleRootProject = Project(id = "stample",base = file("."))

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2014-07-06
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    相关资源
    最近更新 更多