使用SBT复制文件

Ank*_*gra 5 sbt

我正在使用SBT构建Java项目,并且需要复制文本文件(不是资源,而是由Java类用来读取)。我对SBT或Scala都没有经验(build.scala文件需要),任何帮助将不胜感激。

例如,如果我的目录结构是:

test
    |- files
            |- one.text
    |- main
            |- java
                   |- Test.java
Run Code Online (Sandbox Code Playgroud)

一旦我执行sbt目标,我希望目标文件夹中也有一个one.text文件

sbt test
Run Code Online (Sandbox Code Playgroud)

nau*_*nau 4

build.sbt 中的以下几行应该可以解决问题:

unmanagedResourceDirectories in Test <+= (baseDirectory) {_ / "files"}

unmanagedSourceDirectories in Test <+= (baseDirectory) {_ / "main" / "java"}
Run Code Online (Sandbox Code Playgroud)

不过,您有一个非标准的项目布局。如果你可以将其更改为标准的“maven 样式”:

project/src/main/java
project/src/main/resources
project/src/test/java/{Test.java, ...}
project/src/test/resources/{one.text, ...}
Run Code Online (Sandbox Code Playgroud)

sbt 会自动进行资源复制。