sbt资源未复制

时间:2019-02-08 20:44:56

标签: resources sbt

看来sbt(1.2.1,1.2.3)并未将资源文件(从src/main/resources复制到目标目录。

该构建是多项目的,其根项目汇总了subprj1(目前)。

如下所示:项目结构(主目录和一个资源文件:application.conf),resourceDirectory证明我们没有重写它,成功编译的证明-而{{1} }文件尚未复制到输出(application.conf)目录。

试用sbt版本1.2.1、1.2.3。

由于我们遵守标准目录结构,为什么资源没有复制到输出中?

项目结构

target

如果我们在/main/project/home/dir/build.sbt /main/project/home/dir/subprj1/src/main/resources /main/project/home/dir/subprj1/src/main/resources/application.conf /main/project/home/dir/subprj1/src/main/scala/com/myco/foo/bar/server/*.scala IJ][subprj1@master] λ show resourceDirectory [info] subprj1 / Compile / resourceDirectory [info] /main/project/home/dir/subprj1/src/main/resources build/sbt clean compile ... [success] Total time: 22 s, completed Feb 8, 2019 3:10:04 PM find . -name application.conf ./subprj1/src/main/resources/application.conf 之后运行copyResources,它会起作用,但是为什么那不是自动的?

compile

我可以检查任务之间的依赖关系,可以发现build/sbt copyResources find . -name application.conf ./subprj1/src/main/resources/application.conf ./subprj1/target/scala-2.12/classes/application.conf 不依赖于compile,但是它总是这样吗,还是最近的变化?我已经使用sbt多年了,因此我期望该构建将复制资源以自动输出。

copyResources

1 个答案:

答案 0 :(得分:1)

事实证明有人将以下设置添加到build.sbt。一旦注释掉这些行,资源便开始被复制到输出目录。

, unmanagedResourceDirectories in Compile := Seq() , unmanagedResourceDirectories in Test := Seq()