Похоже, что 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