sbt项目构建中的多个目标目录

追求

我在这个结构中有一个sbt项目:

.
├── build.sbt
├── project
│   ├── build.properties
│   └── plugins.sbt
└── src
    ├── main
    │   └── java
    │       └── smcho
    │           └── App.java
    └── test
        └── java
            └── smcho
                └── AppTest.java

使用sbt package,我有三个目标目录,而target2和target3具有类似的结构。

.
├── build.sbt
├── project
│   ├── build.properties
│   ├── plugins.sbt
│   ├── project
│   │   └── target <---------- TARGET 1
│   └── target     <---------- TARGET 2
│       ├── config-classes
│       ├── resolution-cache
│       ├── scala-2.10
│       └── streams
├── src
│   ├── main
│   │   └── java
│   └── test
│       └── java
└── target  <--------------- TARGET 3
    ├── resolution-cache
    │   ├── com.example
    │   └── reports
    ├── scala-2.11
    │   ├── classes
    │   └── hello_2.11-0.1.0.jar
    └── streams
        ├── $global
        └── compile

为什么这样?有趣的是,sbt clean不删除目标目录,有没有办法提供一个简单的目标,以便我可以轻松删除它们?

这是build.sbt:

lazy val hello = taskKey[Unit]("An example task")
val junit = "junit" % "junit" % "4.11" % "test"

lazy val commonSettings = Seq( 
    organization := "com.example", 
    version := "0.1.0", 
    scalaVersion := "2.11.4"
)

lazy val root = (project in file(".")). 
    settings(
        commonSettings: _*
). 
    settings(
        hello := { println("Hello!") },
        name := "hello",
        libraryDependencies += junit
)
迪伦

SBT中的每个项目都有一个target目录。那就是它的编译类和其他生成的东西的地方。

root是一个项目,而TARGET 3图中是它的目标。

您的构建定义(project目录)也是一个项目。使用SBT,可以编写scala代码以实现与构建相关的任务和设置。编译后的代码必须放在某个地方。它进入您标记为TARGET 2-的目录中project/target

SBT中的构建定义可以是递归的,即您的构建定义可以具有自己的构建定义。由于您使用的是插件(在中定义project/plugins.sbt),因此您的构建定义需要一个构建定义,该定义最终将被编译为图表中的project/project/target别名TARGET 1

clean在SBT控制台中运行时,它将清除当前项目的目标目录中的文件。我不认为要删除整个目录,但是在那儿我可能是错的。无论如何,cleanroot选择项目时运行只会影响root项目的target

在SBT控制台中,您可以运行reload pluginsreload return分别跳入和跳出当前项目的构建定义。clean在该上下文中调用将清除各自target的。

至于将它们组合到一个易于删除的目录中,我不确定是否看到了其中的值。使用SBT已有数年了,各种各样的target目录从未真正成为障碍。我认为我甚至不想在过去一年左右的时间内一次删除目标目录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CMake:错误的构建目标目录

来自分类Dev

将多个源目录构建到同一目标目录中

来自分类Dev

将jar文件从多项目Gradle构建部署到目标目录

来自分类Dev

忽略子项目中的目标目录

来自分类Dev

项目模板中的目标目录参数 - Visual Studio

来自分类Dev

复制多个文件并同时创建目标目录?

来自分类Dev

Play Framework 2.2.1-Eclipse安装-多个目标目录

来自分类Dev

将单个共享目录用作所有项目的Cargo目标目录是否可以?

来自分类Dev

在多项目gradle构建中删除中间目录

来自分类Dev

取决于sbt指令sbt将依赖项目打包到多项目构建中?

来自分类Dev

使用Maven将多个资源目录复制到独立的目标目录

来自分类Dev

将文件从多个子目录复制到同一目标目录

来自分类Dev

指示堆栈构建可执行文件的目标目录

来自分类Dev

无法构建war文件:无法删除目标目录中的validation-api-2.0.1.Final.jar

来自分类Dev

sbt:在多项目构建中,如何从项目A调用项目B的任务?

来自分类Dev

在多项目构建中依赖多个 gradle 任务

来自分类Dev

Gradle:即使文件已添加到目标目录,同步任务也会考虑项目是最新的

来自分类Dev

在构建中访问SBT版本?

来自分类Dev

在构建中访问SBT版本?

来自分类Dev

如何一次将多个文件移动到特定的目标目录?

来自分类Dev

如何一次将多个文件移动到特定的目标目录?

来自分类Dev

无法在SBT中使用ProjectRef在多项目构建中“项目gostats”?

来自分类Dev

如何使用使用它的项目在多项目构建中开发sbt插件?

来自分类Dev

如何在使用它的项目的多项目构建中开发sbt插件?

来自分类Dev

选择或获取应用的xcodebuild目标目录

来自分类Dev

rsync无法选择正确的目标目录

来自分类Dev

从查找结果中省略目标目录

来自分类Dev

提取tarball时创建目标目录

来自分类Dev

VLC bash转码脚本目标目录

Related 相关文章

  1. 1

    CMake:错误的构建目标目录

  2. 2

    将多个源目录构建到同一目标目录中

  3. 3

    将jar文件从多项目Gradle构建部署到目标目录

  4. 4

    忽略子项目中的目标目录

  5. 5

    项目模板中的目标目录参数 - Visual Studio

  6. 6

    复制多个文件并同时创建目标目录?

  7. 7

    Play Framework 2.2.1-Eclipse安装-多个目标目录

  8. 8

    将单个共享目录用作所有项目的Cargo目标目录是否可以?

  9. 9

    在多项目gradle构建中删除中间目录

  10. 10

    取决于sbt指令sbt将依赖项目打包到多项目构建中?

  11. 11

    使用Maven将多个资源目录复制到独立的目标目录

  12. 12

    将文件从多个子目录复制到同一目标目录

  13. 13

    指示堆栈构建可执行文件的目标目录

  14. 14

    无法构建war文件:无法删除目标目录中的validation-api-2.0.1.Final.jar

  15. 15

    sbt:在多项目构建中,如何从项目A调用项目B的任务?

  16. 16

    在多项目构建中依赖多个 gradle 任务

  17. 17

    Gradle:即使文件已添加到目标目录,同步任务也会考虑项目是最新的

  18. 18

    在构建中访问SBT版本?

  19. 19

    在构建中访问SBT版本?

  20. 20

    如何一次将多个文件移动到特定的目标目录?

  21. 21

    如何一次将多个文件移动到特定的目标目录?

  22. 22

    无法在SBT中使用ProjectRef在多项目构建中“项目gostats”?

  23. 23

    如何使用使用它的项目在多项目构建中开发sbt插件?

  24. 24

    如何在使用它的项目的多项目构建中开发sbt插件?

  25. 25

    选择或获取应用的xcodebuild目标目录

  26. 26

    rsync无法选择正确的目标目录

  27. 27

    从查找结果中省略目标目录

  28. 28

    提取tarball时创建目标目录

  29. 29

    VLC bash转码脚本目标目录

热门标签

归档