什么是
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
用于确定根模块的名称?
我一直以为它使用name := "[name]"
文件中定义的build.sbt
来命名根模块,但是我当前的SBT项目(使用Scala.JS CrossProject
)后退/使用父目录名称(见图1到3)。
我有什么办法可以改变这种行为吗?
CrossProject
? CrossProject
的情况下创建相同的效果? 答案 0 :(得分:1)
看来手头的问题不是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#js
可以访问由CrossProject#jvm
创建的两个项目。在SBT项目上设置聚合属性将为根发布任何命令,然后向下传递到子项目。