Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- circuitbreaker
- resilience4j
- 4-way-handshake
- zipWith
- closeable
- try-catch-finally
- execution engine
- jetbrain
- intelij
- try-with-resources
- Hotspot VM
- GC
- 동작방식
- 날짜쿼리
- 람다표현식
- jvm
- Class Loader
- tcp
- 코딩테스트
- Runtime data area
- java
- n+1
- webflux
- wagon-ssh
- feign
- springboot
- Kotlin
- AutoCloseable
- try-catch
- optional
Archives
- Today
- Total
JuBin's personal study blog
[Maven] Maven wagon plugin을 이용하여 원격서버 배포 자동화 본문
반응형
현재 상황은 로컬에서 프로젝트를 빌드해도, 로컬에서 테스트를 할수 없는 상황이다.
테스트 및 수정사항 적용을 위해서는
1. 로컬에서 build
2. SFTP로 build된 jar파일 원격서버(개발서버)로 전송
3. 기존 개발서버에서 실행중이던 서비스 kill
4. 새로 올라온 jar파일 실행
이와 같이 매우 불편하고 시간을 낭비하고 있다.
팀원 모두 이런 방식을 쓰고 있는데 아무도 불편함을 느끼지 못하고 있따.
고로 1~4번 과정을 자동화할수 있는 방법을 찾아 구축해 놓은걸 포스팅 하려고 한다.
(추후 CI/CD도 포스팅 예정)
Maven wagon plugin(wagon-ssh)
<build>
<finalName>testJarFile</finalName> -- 1
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.10</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<url>scp://id:pwd@host:port/root/demo</url> -- 2
<fromFile>target/testJarFile.jar</fromFile> -- 3
<commands> -- 4
<command>sh /root/demo/deploy.sh</command>
</commands>
<displayCommandOutputs>true</displayCommandOutputs> -- 5
</configuration>
<executions>
<execution>
<id>upload-jar</id>
<phase>package</phase>
<goals> -- 6
<goal>upload-single</goal>
<goal>sshexec</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
위에 내용으로 pom.xml에 wagon-ssh 추가
- <finalName> : 해당 파일명(testJarFile)으로 /target 하위에 jar파일이 생성된다.(testJarFile.jar)
- <url> : 원격서버 정보 입력
- <fromFile> : 태그명에서도 알수 있듯이 어느 파일을 upload할지 경로 설정
- <commands>, String[] <commond> : 파일 upload 후 실행할 명령어
- <displayCommandOutputs> 터미널 console에 로그 표시 여부(default : false)
- <goals>, String[] <goal> :
- upload-single : 단일 파일 업로드
- sshexec : 업로드 후 명령어 실행
여기까지 설정 후 해당 프로젝트를 build하게 되면
- target/testJarFile.jar 생성
- <url>에 입력한 원격서버에 파일 업로드
- 파일 업로드 후 sh /root/demo/deploy.sh 쉘스크립트 실행(
순서대로 실행된다.
deploy.sh 내용은 하단 게시물 링크 참조!
2021.07.02 - [Linux] - [Linux] 프로젝트 배포 스크립트 작성
[Linux] 프로젝트 배포 스크립트 작성
내용은 별거 없지만 원격서버에 올라간 jar파일을 실행하려면 기존 실행되던 서비스 kill processID, start process를 반복해야되는 번거로움이 있다. 간단한 배포스크립트를 통해 해당 쉘스크립트만 실
jubin-developer.tistory.com
참고, 출처
https://www.mojohaus.org/wagon-maven-plugin/usage.html
반응형