Проблема в том, что что есть часть нашей сборки, которая использует наш собственный обработчик аннотаций для создания методов для вызовов DAO и т. д., которыми мы управляем. Вот соответствующая часть нашего build.sbt:
Код: Выделить всё
Compile / compile := (Compile / compile dependsOn Def.task({
(Compile / managedSourceDirectories).value.head.mkdirs()
})).value,
Compile / javacOptions ++= Seq("-s", (Compile / managedSourceDirectories).value.head.getAbsolutePath)
Ошибки, которые мы получаем от компилятора scala после запуска sbt clean compile, имеют следующий вид:
Код: Выделить всё
[error] -- [E008] Not Found Error:.../DefaultCompetitionYearResource.java:8:39
[error] 8 |import shared.models.core.querybuilder.CompetitionYearQueryBuilder;
[error] | ^
[error] | value querybuilder is not a member of shared.models.core
I пробовали скомпилировать JavaThenScala и ScalaThenJava, но ни один из этих вариантов не работает (поскольку наша смешанная сборка зависит друг от друга). Я также пробовал перейти на другую версию Scala, но все стабильное после 3.3.0 ломается так же. Я ожидал, что будет способ:
- Скомпилировать наши исходные коды src_managed перед запуском компилятора Scala.
- Каким-то образом заставить компилятор Scala не просматривать классы Java, связанные с нашими queryBuilder
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-upgradin