sbt资源未复制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sbt资源未复制相关的知识,希望对你有一定的参考价值。
似乎sbt(1.2.1,1.2.3)没有将资源文件(从src/main/resources
)复制到目标目录。
构建是多项目的,根项目聚合subprj1
(现在)。
显示如下:项目结构(主目录和一个资源文件:application.conf
),resourceDirectory
作为我们没有覆盖它的证明,成功编译的证据 - 但application.conf
文件尚未复制到输出(target
)目录。
试过sbt版本1.2.1,1.2.3。
为什么资源没有被复制到输出中,因为我们遵守标准目录结构?
项目结构
/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
不依赖于copyResources
,但它总是这样,或者这是最近的变化?我已经使用sbt多年了,我期望构建会自动将资源复制到输出。
build/sbt -Dsbt.log.noformat=true "inspect tree compile" > t.txt
答案
事实证明有人将下面的设置添加到build.sbt
。一旦我注释掉这些行,资源就开始被复制到输出目录。
, unmanagedResourceDirectories in Compile := Seq()
, unmanagedResourceDirectories in Test := Seq()
以上是关于sbt资源未复制的主要内容,如果未能解决你的问题,请参考以下文章