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”

![[RSYNC] rsync ssh port 변경하기](https://tech.sangron.com/wp-content/uploads/sites/2/2017/12/ubuntu_wallpaper_2-768x480.jpg)
![[Maven] JAR 생성 시 dependency 포함](https://tech.sangron.com/wp-content/uploads/sites/2/2014/01/java_wallpaper-768x480.jpg)