Почему команда sbt ~ compile не перекомпилируется при изменении кода? - PullRequest
0 голосов
/ 06 июля 2019

У меня сейчас проблема с перекомпиляцией при изменении кода с помощью sbt.

Я следовал ссылке sbt ' sbt на примере ' Я установил sbt 1.2.8 и следовал инструкциям:

Создание минимальной сборки sbt

$ mkdir foo-build
$ cd foo-build
$ touch build.sbt

Запуск sbt shell

$ sbt
[info] Loading global plugins from C:\Users\hce\.sbt\1.0\plugins
[info] Loading project definition from E:\learn\Scala\demo\foo-build\project
[info] Loading settings for project foo-build from build.sbt ...
[info] Set current project to foo-build (in build file:/E:/learn/Scala/demo/foo-build/)
[info] sbt server started at local:sbt-server-57c501e502d72a00d890

Перекомпиляция при изменении кода (обратите внимание на префикс ~ перед командой компиляции)

sbt:foo-build> ~compile
[success] Total time: 0 s, completed Jul 6, 2019 12:01:24 PM
1. Waiting for source changes in project foo-build... (press enter to interrupt)

Создать исходный файл

Оставьте предыдущую команду запущенной. Из другой оболочки или в вашем файловом менеджере создайте в каталоге проекта следующие вложенные каталоги: src / main / scala / example. Затем создайте Hello.scala в каталоге примеров, используя ваш любимый редактор, следующим образом:

package example

object Hello extends App {
  println("Hello")
}

Этот новый файл должен быть выбран текущей командой. Но он не работает в моей системе.

Ожидаемое поведение:

[info] Compiling 1 Scala source to /tmp/foo-build/target/scala-2.12/classes ...
[info] Done compiling.
[success] Total time: 2 s, completed May 6, 2018 3:53:42 PM
2. Waiting for source changes... (press enter to interrupt)

Вот некоторая информация о моем окружении

$ java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

$ sbt sbtVersion
[info] Loading global plugins from C:\Users\hce\.sbt\1.0\plugins
[info] Loading project definition from E:\learn\Scala\demo\foo-build\project
[info] Loading settings for project foo-build from build.sbt ...
[info] Set current project to foo-build (in build file:/E:/learn/Scala/demo/foo-build/)
[info] 1.2.8

$ systeminfo.exe | grep '^OS'
OS Name:                   Microsoft Windows 10 Enterprise LTSC
OS Version:                10.0.17763 N/A Build 17763
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free

Что я уже пробовал:

  • переустановить sbt
  • попробуйте с командной строкой Windows
  • попробуй mingw64 bash

Чего мне не хватает, чтобы правильно запустить команду sbt ~ compile?

1 Ответ

0 голосов
/ 06 июля 2019

Я нашел ответ.

Инструкция содержит ошибку.Мы должны поместить каталог src / main / scala / example в каталог проекта.

Из другой оболочки или в вашем файловом менеджере создайте в каталоге проекта следующие вложенные каталоги: src / main / scala / example.

Но это приводит к описанной проблеме.foo-build / project / предназначен для определения кода сборки.

Если я помещу каталог src / main / scala / example в каталог foo-build, он будет работать.

Я должен был заранее выполнить команду run , которая выдает ошибку «Основной класс не обнаружен».Что, в свою очередь, помогло обнаружить, что структура каталогов была неправильной, прочитав следующий вопрос:Извините за беспокойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...