【问题标题】:Change directory to SBT project in IntelliJ with SBT console使用 SBT 控制台将目录更改为 IntelliJ 中的 SBT 项目
【发布时间】:2013-09-20 10:16:12
【问题描述】:

我刚刚为 IntelliJ 安装了 SBT plugin 并成功导入了我的项目。 IntelliJ 中的 SBT 控制台按预期显示,但是由于我的项目布局,我无法使用它。整个问题是我的 SBT Play! project 不是顶级目录。相反,我有几个子模块的 Maven 父 pom,其中放置了我的 SBT 应用程序。看起来是这样的:

MyProject (parent pom)
-> submodule1 (JAR)
-> submodule2 (JAR)
-> webapp (SBT Play! webapp module)

运行Play没有问题!来自 Linux CLI 的应用程序,之前将目录更改为 MyProject\webapp 并从那里执行 SBT。但是,我看不到在 IntelliJ 中为 SBT 控制台设置根目录的任何选项。我已将整个项目导入工作区,因此默认项目根目录是MyProject,这显然不是 SBT 项目。

有没有办法改变 IntelliJ SBT 插件的“工作目录”?

【问题讨论】:

    标签: intellij-idea sbt


    【解决方案1】:

    我遇到了同样的问题,我是这样解决的:

    1. 首先将您的根目录添加为新模块。在您的情况下,它将是 MyProject。我很小心地将它添加为一个空白模块,但如果你已经有类似 pom 文件的东西(这引出了你为什么要使用 SBT 的问题),那么你可能可以让 IntelliJ 为你导入它。李>
    2. 接下来,将 scala 文件添加到您的项目根目录以映射子项目。可以在scala wiki 上找到有关如何设置其中一个的很好的解释

    导入 sbt._ 导入密钥。_

    object HelloBuild extends Build {
        lazy val root = Project(id = "MyProject",
                                base = file(".")) aggregate(submodule1, submodule2, webapp)    
    
    lazy val submodule1 = Project(id = "submodule1",
                               base = file("submodule1"))
    
        lazy val submodule2 = Project(id = "submodule2",
                               base = file("submodule2"))
    
        lazy val webapp = Project(id = "webapp",
                               base = file("webapp"))
    
    }
    
    1. 启动您的 SBT,您现在应该能够在项目之间切换。如果您已启动并运行它,请确保使用 reload 命令应用更改。

    您可以使用projects 命令列出 SBT 识别为模块的项目。使用project [projectName] 切换项目。所以要切换到子模块2,只需输入project submodule2.

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 2018-11-11
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多