Я создаю проект sbt
со следующими настройками:
scalaVersion := "2.11.8",
crossScalaVersions := Seq("2.11.8", "2.12.8"),
При компиляции sbt копирует файлы ресурсов в выходную папку classes/
. Однако файлы ресурсов для других scala версий, отличных от текущей, каким-либо образом удаляются . Это неожиданно, особенно потому, что скомпилированные .class
файлы остаются для обеих версий .
Я попытался включить -v для подробного & -d для отладки, но все еще не понимаю, почему / где ресурсы удаляются из другой версии classes/
.
sbt +mleap-spark-extension/compile -d -v
[debug] Копировать сопоставления ресурсов: [debug] (/ Users / juhoautio / ideaprojects / mleap / mleap-spark-extension-extension /src/main/resources/reference.conf,/Users/juhoautio/ideaprojects/mleap/mleap-spark-extension/target/scala-2.11/classes/reference.conf)
debug] Копировать ресурс Сопоставления * -2.12 / classes / reference.conf)
Тогда:
find mleap-spark-extension/target -name reference.conf
Находит только последний, ie.:
mleap-spark-extension / target / scala -2.12 / classes / reference.conf
Однако и target/scala-2.12/classes/
, и target/scala-2.11/classes/
все еще имеют скомпилированный .class
файлы. Это просто файл ресурсов, который теряется.
Кроме того, если после этого я соберу только 2.11:
sbt mleap-spark-extension/compile -d -v && find mleap-spark-extension/target -name reference.conf
Тогда:
find mleap-spark-extension/target -name reference.conf
Только поиск последний, ie.:
mleap-spark-extension / target / scala -2.11 / classes / reference.conf
This с sbt.version = 0.13.18
. Возможно, это изменилось в более новых версиях, но обновление не является тривиальным, поэтому я пытаюсь хотя бы выяснить, почему это происходит с текущей версией.
Как я могу отладить это дальше? В идеале я бы хотел, чтобы sbt вообще не касался другой папки scala версии classes/
!