Sbt的Gen-idea总是创建两个IntelliJ项目



我是SBT的新手。只是好奇为什么sbt的gen想法总是产生两个IntelliJ项目:

 .idea
 .idea_modules

当我打开生成的项目时,"项目"目录总是作为一个与顶级项目不同的单独项目存在。名称为"myprojectbuild"。

只是想知道这是否正常?

谢谢。

是,这是正常的,这是默认行为。您可以通过排除一些文件夹来更改它(请参阅此处的文档:https://github.com/mpeltonen/sbt-idea在排除一些文件夹

那么,.inidea和.idea_modules之间有什么区别

.idea_module生成一个idea模块,而.inidea生成一个idea项目。

简而言之,一个项目可以是多模块或单模块,还包含IntelliJ库。

在较长版本中来自文档(http://confluence.jetbrains.com/display/IDEADEV/Structure++IntelliJ+IDEA+项目)

项目

在IntelliJ IDEA中,一个项目封装了您的所有源代码,库,将指令构建到单个组织单元中。您在IntelliJ IDEA中所做的一切都是在项目项目定义了一些集合,称为模块和图书馆。取决于项目,您可以创建单个模块或多模块项目。

模块

模块是可以运行、测试和/或使用的功能的离散单元,并独立调试。模块包括源代码、构建脚本、单元测试、部署描述符等项目,每个模块都可以使用特定的SDK或继承上定义的SDK项目级别(请参阅本文档后面的SDK部分)。A.模块可以依赖于项目的其他模块。

是的,适用于IDEA的SBT插件是可以的。

通常,IDEA项目由顶级.idea目录(包含项目通用的配置)和几个*.iml文件组成,项目中的每个模块都有一个文件(模块特定的配置,如facet、排除的目录、自定义依赖项)。这些文件通常位于相应模块的顶级目录中。

另一方面,SBT插件做了一些不同寻常的事情。它创建了标准的.idea目录,但它将所有项目模块存储在一个位置,即项目顶层目录中的.idea_modules目录。IDEA项目结构完全支持这一点,毕竟它是一组XML。

至于project目录/模块,它是SBT构建的标准特性。它包含您的生成配置。请参阅SBT手册。

前面是关于SBT插件的,它目前存在于插件库中。有一个官方的SBT插件正在积极开发中,它保持了熟悉的模块结构(没有.idea_modules目录),并与SBT有更高的集成度。后者在依赖关系管理中最为突出——官方插件提取依赖关系,甚至是非托管依赖关系,并使其可用于IDE;当前的SBT插件无法做到这一点。

最新更新