我是SBT的新手。只是好奇为什么sbt的gen-idea总是产生两个IntelliJ项目:
.idea
.idea_modules
当我打开生成的项目时,“project”目录始终作为与顶级项目不同的单独项目。名称是“myproject-build”。
只是想知道这是否正常?
感谢。
答案 0 :(得分:0)
是的,这是正常的,这是默认行为。您可以通过排除某些文件夹来更改它(请参阅此处提供的文档:https://github.com/mpeltonen/sbt-idea 排除某些文件夹)
那么.idea和.idea_modules有什么区别?
.idea_module生成IDEA模块,而.idea生成IDEA项目。
简而言之项目可以是多模块或单模块,也包含IntelliJ库。
来自doc(http://confluence.jetbrains.com/display/IDEADEV/Structure+of+IntelliJ+IDEA+Project)的更长版
<强>项目强>
在IntelliJ IDEA中,项目封装了所有源代码, 库,将指令构建到单个组织单元中。 你在IntelliJ IDEA中所做的一切都是在一个环境中完成的 项目。一个项目定义了一些被称为模块和集合的集合 库。取决于对逻辑和功能的要求 项目,您可以创建单个模块或多模块项目。
<强>模块强>
模块是一个独立的功能单元,可以运行,测试, 并独立调试。模块包括诸如源之类的东西 代码,构建脚本,单元测试,部署描述符等 项目中,每个模块都可以使用特定的SDK或继承定义的SDK 项目级别(请参阅本文档后面的SDK部分)。一个 模块可以依赖于项目的其他模块。
答案 1 :(得分:0)
是的,IDEA的SBT插件是可以的。
通常IDEA项目由顶级.idea
目录(包含项目通用配置)和几个*.iml
文件组成,一个用于项目中的每个模块(特定于模块的配置,如facets) ,排除目录,自定义依赖项)。这些文件通常位于相应模块的顶级目录中。
另一方面,SBT插件做了一些不寻常的事情。它创建标准.idea
目录,但它将所有项目模块存储在一个位置,即项目顶级目录中的.idea_modules
目录。 IDEA项目结构完全支持这一点,毕竟这是一组XML。
对于project
目录/模块,它是SBT构建的标准功能。它包含您的构建配置。请参阅SBT manual。
前面是关于SBT插件,它目前存在于插件存储库中。在活动开发中有一个official SBT plugin,它保持熟悉的模块结构(没有.idea_modules
目录)并且与SBT具有更高的集成度。后者在依赖管理中最为突出 - 官方插件提取依赖性,甚至是非托管的,并使它们可用于IDE;目前的SBT插件无法做到这一点。