MAVEN 을 이용하여 빌드 JAR 파일을 원격 서버로 자동 배포하기
먼저, 이를 수행하기 수행하기 위해서 ant의 ant-jsch 플러그인을 사용해야 합니다. 때문에 해당 IDE의 plugin에 ant와 ant-jsch가 설치되어 있어야 합니다.
Ant/ Ant-JSch 설치
다운 받은 Ant는 각각 IDE의 plugins 폴더 아래에 압축을 해제하고, ant-jsch는 ant 폴더 아래 lib 폴더에 jar 파일을 추가해주시면 됩니다.
pom.xml 설정
pom.xml 파일의 project>build>plugins 아래와 같이 추가합니다.
<plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>install</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <scp file="target/${project.artifactId}-${project.version}.jar" todir="${scp.user}:${scp.password}@${scp.host}:/${scp.dirCopyTo}" /> </tasks> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>ant</groupId> <artifactId>ant-jsch</artifactId> <version>1.6.5</version> </dependency> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.42</version> </dependency> </dependencies> </plugin>
MAVEN install
Run As > Maven install 을 이용하여 jar 파일을 최종 업로드 합니다.
SCP 옵션
port 지정
기본 포트인 22번 포트 외에 별도의 포트를 사용시 port 옵션을 이용해 다음과 같이 지정가능합니다.
<scp todir="${scp.user}:${scp.password}@${scp.host}:/${scp.dirCopyTo}" port="xxxxx">
아래 링크를 참조하시면 SCP에 대한 다양한 옵션 값을 보실 수 있습니다.
Errors
아래와 같이 지정된 Host로의 접근이 거부 당할 수 있습니다.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:run (default) on project XXXXX: An Ant BuildException has occured: com.jcraft.jsch.JSchException: reject HostKey: xxx.xxx.xxx.xxx -> [Help 1]
다음의 경우에는 scp 내에 아래와 같은 속성을 주시면 됩니다. 해당 옵션은 unknown host 로의 접속 여부를 묻는 것으로써 Default 값은 No 입니다.
trust=”true”