2010-01-12 6 views
1

일반적으로 java/scala 스택을 처음 사용합니다. 지금까지 상대적으로 간단한 스칼라 응용 프로그램 (webapp이 아님)을 설치하고 maven2를 사용하여 빌드를 빌드했으며 하나 이상의 프로덕션 서버 (EC2의 우분투)에 출력을 배포 할 수 있기를 바랍니다.하지만 중요하지 않아야합니다. 나는 생각한다)?maven으로 관리되는 간단한 스칼라 앱 (웹 앱이 아닌) 배포

내 주요 질문 : 1) 프로덕션 서버에 설치된 모든 종속 (타사) 병을 가져 오는 가장 좋은 방법은 무엇입니까? 메이븐 (maven)이 제 개발 상자에 그것들을 설치합니다. 어떻게 작동합니까? 2) mvn scala로 앱을 실행할 수 있습니다 : 실행하지만 프로덕션 환경에서 앱을 시작하는 올바른 방법은 무엇입니까? 3) 후속 배포는 어떻게 처리합니까?

모든 포인터/리소스가 확인됩니다! 멍청한 놈 돕기에 미리 감사드립니다! :)

+0

혹시이 리프트입니까? 의존성에 대해 정확히 알지 못하는 것처럼 말합니다. –

+0

나는 단지 그들이 중요하지 않다고 가정하고 있었다. twitter4j 등의 패키지 몇 개 – ambivalence

답변

2

나는 의존성, 내 자신의 코드를 패키지하고 시작 스크립트를 만들기 위해 Maven App Assembler plugin을 사용하는 경향이있다. 기본 사용법은 Sonatype의 우수 Maven book에 설명되어 있습니다.

가장 융통성있게 Java Service Wrapper 스크립트를 생성 할 수 있으므로 응용 프로그램을 명령 줄 응용 프로그램, Windows 서비스 또는 Unix 데몬으로 실행할 수 있습니다.

이 접근법은 스칼라 응용 프로그램에만 국한되지 않습니다. 애플리케이션의 주요 클래스를 알아야합니다. 예 : 아래 코드에서 sample.Main $.

package sample 

object Main { 
    def main(args: Array[String]) = println("hello world") 
} 
1

retronym의 대답은 최선의 해결책처럼 보이지만 당신이 정말 간단하게 뭔가를 원한다면 당신은 메이븐 assembly 플러그인을 사용할 수 있습니다. 당신이 할 일은 pom.xml에 플러그인으로 추가 한 다음 mvn assembly:assembly을 수행하면 모든 종속 관계 (스칼라 라이브러리 포함)가 제거 된 jar 파일을 빌드합니다. 따라서 java -cp my.jar MyMainClass으로 애플리케이션을 실행할 수 있습니다.

관련 문제