2015-01-09 5 views
7

sbt에서 어셈블리 플러그인을 사용하여 프로젝트를 어셈블합니다. 그러나 "java -jar xx.jar"-scala sbt assembly "메인 매니페스트 없음"

"main manifest 속성 없음"으로 실행하면 오류가 발생합니다.

src/main/scala/ 디렉토리에 두 개의 파일이 있고 각각 Application이라는 확장 객체가 있기 때문에 프로젝트에 두 개의 기본 항목이 있다는 의미입니다. 하지만 두 개의 응용 프로그램이 필요합니다. 하나는 서버이고 다른 하나는 테스트 클라이언트입니다.

처리 방법 scala sbt의 two-main-entry 문제. 미리 감사드립니다.

답변

18

SBT 빌드 파일에 기본 클래스를 정의하십시오. 당신이 build.sbt를 사용하는 경우

, 그 다음은 다음과 같습니다

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

당신은 다음과 같이 할 수 Build.scala를 사용하는 경우 :

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

작동합니다! 고마워요 – hl1020

+0

@ polkovnikov.ph 당신은 sbt 어셈블리 플러그인을 가지고 계십니까? –

0

을 나는이 문제 동안했다 Lagom 테스트.

는 Lagom에 그냥 -impl 프로젝트에 액세스하고이를 실행할 수 있습니다 배포하려면 :

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

이 내부의 실행 파일과 함께 우편을 생성합니다.

관련 문제