2012-09-04 6 views
0

일부 사용자 정의 인수/내 질문이 당신에게 바보 소리 경우 개미는 따라서 실례주세요 ...원격 기계와 내가 받는다는 꽤 새로운 오전

에서에 jar 파일을 배포하는 방법에 자바 - 내가 작업하고있는 응용 프로그램, 가상 머신 (예 : Amazon EC2 인스턴스)을 초기화 한 다음 JAR 파일을 해당 시스템에 업로드하고 마침내 실행하십시오. 실행하려고 할 때마다 런타임 인수가 다를 수 있습니다.

가장 좋은 방법은 무엇입니까? JRE 외에도이 가상 시스템에 어떤 프레임 워크/라이브러리 (예 : maven 또는 ant)를 설치해야합니까?

+0

이것은 Maven의 직업이 아닙니다. 그러한 목적을 위해 스크립트, CI 솔루션 또는 요리사 또는 꼭두각시 같은 것을 사용하십시오. – khmarbaise

답변

0

Ant/Maven을 원격으로 배포 할 필요가 없을 것 같습니다.

ssh/scp 대신 해당 컴퓨터에 수신 할 수 있습니까? Ant는 sshexecscp 개의 작업을 통해 원격으로 항목을 복사하고 실행할 수 있습니다.

0

가장 좋은 방법은 필요한 모든 작업을 수행하는 셸 스크립트를 만드는 것입니다. 컴퓨터가 유닉스 계열 인 경우 을 사용하면 ssh, scp (ssh 사용)로이 모든 작업을 수행 할 수 있습니다.

ssh를 사용하면 원격 쉘 명령을 실행할 수 있습니다.

예 (all_in_one.sh) :

args=$1 
arg2=$2 
etc. 
ssh [email protected]_instance << end 
/home/admin/bin/startAmazonVM.sh $arg1 
end 

scp mylocal.jar [email protected]_instance:/home/admin/server/libraries/ 

ssh [email protected]_instance << end 
$JAVA_HOME/bin/java -jar /home/admin/server/libraries/mylocal.jar $arg2 
end 

그럼 당신은 예를 들어, 실행할 수 있습니다 all_in_one.sh (>> output.txt를 추가하여 프로세스를 검증하기 위해 구문 분석 할 수있는 실행 출력 파일을 생성하십시오)

Windows에서 작업하는 경우 Cygwin 또는 MinGW를 설치하거나 ant를 사용하고 더 많은 것을 사용하십시오. 다른 도구가 가장 잘 수행 할 수 있도록 작업을 구성하는 데 더 많은 시간이 소요됩니다. 당신이 Maven에 충실 경우에는 다음과 같이

1

, 당신은 install phase에 항아리 업로드 프로세스를 공격 할 수 있습니다 :

의 pom.xml :

... 
<plugins> 
... 
    <plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <configuration> 
     <tasks> 
     <scp todir="${targetNode}:~/" trust="true" failonerror="true" 
      file="${project.build.directory}/${project.build.finalName}.jar" /> 
     </tasks> 
    </configuration> 
    <executions> 
     <execution> 
     <id>upload</id> 
     <phase>install</phase> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
     <groupId>org.apache.ant</groupId> 
     <artifactId>ant-jsch</artifactId> 
     <version>1.8.3</version> 
     </dependency> 
    </dependencies> 
    </plugin> 
... 
</plugins> 
... 

그런 문제 :

mvn clean install "-DtargetNode=user:[email protected]" 

선택적 업로드 된 jar를 대상 시스템에서 실행하는 스크립트를 작성하십시오.

관련 문제