【问题标题】:Create target directory outside project directory with sbt使用 sbt 在项目目录外创建目标目录
【发布时间】:2020-09-17 14:59:38
【问题描述】:

我的项目结构是:

└───current-working-dir
    ├───my-project
        ├───src

当我在 current-working-dir 中运行 sbt compile 时,.sbt 文件如下所示:

lazy val root = (project in file("my-project"))
  .settings(
    name := "my-project",
    settings,
    libraryDependencies ++= commonDependencies
  )

然后在项目目录下生成target:

└───current-working-dir
    ├───my-project
        ├───src
        ├───target

是否可以让 sbt 在项目目录之外创建目标?例如:

└───current-working-dir
    ├───my-project
        ├───src
    ├───target

└───current-working-dir
    ├───my-project
        ├───src
    ├───my-project-compilation
        ├───target

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    target 设置控制文件的生成位置。这是一个如何更改它的示例

    target := baseDirectory.value / "my-project-compilation" / "target"
    

    【讨论】:

    • 不是用户把它放在哪里...当我把它放到.settings(...) 然后它什么都没有改变。
    【解决方案2】:

    其实我猜是正确的

    lazy val root = (project in file("my-project"))
      .settings(
        name := "my-project",
        settings,
        libraryDependencies ++= commonDependencies,
        target := baseDirectory.value / ".." / "my-project-compilation" / "target"
      )
    

    您可以检查如果您将文件放置为current-working-dir/my-project/src/main/scala/App.scala,则编译后的类显示为current-working-dir/my-project-compilation/target/scala-2.13/classes/App.class

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 1970-01-01
      • 2021-09-30
      • 2016-06-03
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      相关资源
      最近更新 更多