繁体   English   中英

IntelliJ SBT - 模块命名

[英]IntelliJ SBT - Module naming

有什么作用

IntelliJ IDEA 2016.1.1
Build #IU-145.597, built on March 29, 2016
JRE: 1.8.0_40-release-b132 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Scala Plugin Version: 3.0.2

用于确定根模块的名称?

我一直认为它使用在build.sbt文件中定义的name := "[name]"来命名根模块,但我当前的 SBT 项目(使用 Scala.JS CrossProject )回退/使用父目录名称(见图 1 到 3)。

有什么办法可以改变这种行为吗?

  • 是否有任何类型的主覆盖?
  • 这是使用CrossProject的结果吗?
  • 如果是,如何在不使用CrossProject情况下创建相同的效果?

SBT 模块概述

文件夹结构概述

<code>build.sbt</code> 片段

看来手头的问题不是 IntelliJ 中的错误,而是 SBT 中的“功能”。 当没有使用根路径的项目时,SBT 会自动为您创建一个聚合所有子项目并以父目录命名的项目。 像这样定义一个根项目:

lazy val root = project in file(".").
    aggregate(cross.js, cross.jvm).
    settings(...)

lazy val cross = CrossProject("jvm", "js", file("."), FullWithSrc).
    settings(...)

将解决此问题并使用正确的命名。

CrossProject仅指定两个项目并在任何共享代码的设置中创建一个unmanagedSources条目。 CrossProject创建的两个项目可以通过CrossProject#jsCrossProject#jvm 在 SBT 项目上设置聚合属性将使为根发出的任何命令都向下渗透到子项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM