При запуске приложения Scala я получаю следующее предупреждение:
WARN - импортированные `SVNProperties 'постоянно скрыты по определению объекта SVNProperties в ядре пакета, в строке 4 приложения/ядра/SVNResource.scala
Что это может означать?
При запуске приложения Scala я получаю следующее предупреждение:
WARN - импортированные `SVNProperties 'постоянно скрыты по определению объекта SVNProperties в ядре пакета, в строке 4 приложения/ядра/SVNResource.scala
Что это может означать?
Вероятно, у вас есть код, который выглядит примерно так:
object Hidden {
import scala.collection.immutable
object immutable { def x = 7 }
}
за исключением менее очевидного. Вы импортируете что-то - в моем примере, пакет immutable
- и затем вы идете и определяете что-то еще с тем же именем, которое мешает вам использовать то, что вы импортировали.
В частности, похоже, что вы пытались импортировать SVNProperties
в SVNResource.scala
, за исключением того, что SVNResource.scala
определяет свой собственный SVNProperties
, который скрывает импорт.
Я столкнулся с этим предупреждением после перемещения некоторых классов из одного пакета в другой. Я предполагаю, что был конфликт между новым местоположением и бинарниками из старого местоположения. В моем случае это помогло:
sbt clean
Это случилось со мной после перехода класса из одного пакета в другой, как в случае с астасией. Я побежал sbt clean
без везения. Для жизни меня я не мог найти класс в старом месте.
Однако у меня были другие ошибки, которые мешали мне строить. Когда я исправил их, эта ошибка исчезла. Я предполагаю, что до тех пор, пока вы не сможете построить чисто, sbt
все еще думает, что у вас есть класс в старом пакете, и включает эту ошибку с любыми другими ошибками сборки, которые мешают вам строить.
Мой совет? Проверьте другие ошибки компиляции и исправьте эти - вы можете ошибочно получить эту ошибку из-за sbt
, имеющего устаревшее представление о структуре вашего пакета с момента его последней успешной сборки.
У меня был основной класс с именем Server, и я создавал причал в основном классе следующим образом.
import org.eclipse.jetty.server.Server
var server:Server=new Server()
Я получил предупреждение ниже при запуске sbt run
> [warn] /home/xxx/xxx/xxx/src/main/scala/com/xxx/xxx/main/Server.scala:3:
> imported `Server' is permanently hidden by definition of object Server in package main
[warn] import org.eclipse.jetty.server.Server
[warn] ^
[warn] one warning found
Я переименовал свой основной класс, и предупреждение исчезло.
Я получил это предупреждение, когда мой класс импортирует классы в один и тот же пакет. После удаления я удаляю предупреждения.