Как установить основной class в сборке?

После sbt run меня есть несколько вариантов основного classа.

Я хотел бы установить основной class, поэтому я build.sbt в build.sbt :

 mainClass := Some("aMainClass") 

Но sbt терпит неудачу:

 build.sbt:1: error: not found: value aMainClass 

Я также пытался использовать файл project/Project.scala :

 import sbt._ class ExecutableProject(info: ProjectInfo) extends DefaultProject(info) { override def mainClass = Some("aMainClass") } 

ошибка :

  project/Project.scala:3: not found: type aMainClass 

Как установить основной class в сборке?

Основной class должен быть полностью укомплектован пакетом:

 Compile/mainClass := Some("myPackage.aMainClass") 

Это будет работать для запуска, и он будет устанавливать Main-Class в манифесте при использовании задачи пакета. Основной class для этих задач может быть задан отдельно, как в:

 mainClass in (Compile, run) := Some("myPackage.aMainClass") mainClass in (Compile, packageBin) := Some("myPackage.anotherMainClass") 

Заметка:

 mainClass := Some("myPackage.aMainClass") 

ничего не делает. Если вы поместите это в свой файл сборки, вы не получите предупреждения о том, что он ничего не делает.

Насколько я знаю, sbt ожидает здесь полностью квалифицированного имени classа / объекта в вашем проекте. Например, если ваш основной class выглядит следующим образом:

 package prog object Main extends App { // Hic sunt dracones } 

то вам придется отдать свой основной class следующим образом:

 mainClass := Some("prog.Main") 

Вы получаете ошибку типа, потому что этот тип не просто найден.

  • Как запустить основной class sbt из оболочки в качестве обычной командной строки?
  • Как установить размер кучи для sbt?
  • Как получить доступ к защищенному Nexus с помощью sbt?
  • Установить sbt на ubuntu
  • Как использовать sbt из-за прокси-сервера?
  • Решение проблем зависимостей в Apache Spark
  • sbt-assembly: обнаружена ошибка дедупликации
  • Давайте будем гением компьютера.