2015-01-09 12 views
7

Projemi oluşturmak için montaj eklentisini sbt'de kullanıyorum. Ancak "java-jar xx.jar" -scala sbt assembly "ana manifest niteliği yok"

"ana manifest niteliği yok" ile çalıştırıldığında hatalar meydana gelir.

Sanırım, src/main/scala/ dizimdeki iki dosya var ve her biri Application alanını genişleten bir nesne var, bu da projede iki ana girdi var demektir. Ama iki uygulamaya ihtiyacım var, biri sunucu ve diğeri test istemcisi.

Scala sbt'de bu two-main-entry sorunu nasıl çözülür. Şimdiden teşekkürler.

cevap

18

SBT oluşturma dosyanızda ana sınıfı tanımlayın. Eğer build.sbt kullanıyorsanız

, o olacaktır:

mainClass in assembly := Some("com.domain.Main") 

o zaman böyle bir şey yapabileceğini Build.scala kullanıyorsanız:

lazy val app = (project in file("app")). 
    settings(assemblySettings: _*) 
    settings(mainClass in assembly := Some("com.domain.Main")) 
+0

işe yarıyor! Çok teşekkürler – hl1020

+0

@ polkovnikov.ph sbt montaj eklentisi yüklü olduğundan emin misiniz? –

0

Ben bu sorunu iken vardı Lagom'u test etmek.

lagom içinde sadece -impl projeyi erişebilir ve bu çalıştırabilirsiniz dağıtmak için:

./sbt "project <your-project>-impl" dist 

Bu iç yürütülebilir bir zip üretecektir.