728x90
리눅스 서버에 SVN을 이용해서 SpringBoot(gradle) war 파일 배포하는 방법에 대해 간략하게 알아보겠습니다.
1. Repository 생성
- SVN에 deploy라는 폴더를 생성 후, checkout 을 진행합니다.
2. build.gradle
- build.gradle 파일 수정
plugins {
id 'java'
id 'org.springframework.boot' version '2.6.15'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'war'
}
apply plugin: 'war'
bootWar {
archiveBaseName = '-'
archiveFileName = 'myApp.war'
archiveVersion = "1.0.0"
}
group = 'myApp.qr'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '1.8'
}
repositories {
mavenCentral()
}
dependencies {
...
}
// bootWar 태스크가 완료된 후 copyWar 태스크 실행
task copyWar(type: Copy) {
dependsOn 'bootWar'
from "${project.buildDir}/libs/myApp.war"
into file("${project.rootDir.parent}/deploy")
rename { 'myApp.war' }
doLast {
println("Copied myApp.war to ${project.rootDir.parent}/deploy")
}
}
// bootWar 태스크가 완료된 후 copyWar 태스크 실행
tasks.named('bootWar') {
finalizedBy 'copyWar'
}
tasks.named('test') {
useJUnitPlatform()
}
// war 태스크 비활성화
tasks.named('war') {
enabled = false
}
- copyWar task를 작성합니다. 해당 task는 bootWar task 가 완료된 이후에 libs 폴더 하위에 생긴 war 파일을 원하는 경로에 옮기는 작업을 합니다.
- tasks.named('bootWar')를 통해 copyWar를 실행시킵니다.
- tasks.named('war')의 enabled 속성을 통해 2개의 war 파일이 생기지 않도록 설정합니다.
3. 커밋
- svn commit -> 터미널 접속
- deploy 폴더로 이동해 war 파일을 커밋한 후, 터미널을 통해 서버에 접속합니다.
4. server.xml
- 원하는 경로에 svn checkout 을 진행하고 톰캣의 server.xml 파일을 수정합니다.
<Host name="localhost" appBase="/home/deploy" unpackWARs="true" autoDeploy="false" deployOnStartup="false">
<Context path="/" docBase="myApp.war" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
5. SVN update
- svn update 명령어를 통해 war 파일을 update 합니다. update, stop, start 같은 명령어들은 alias로 관리하면 편리합니다.
alias deploy='svn update /home/deploy'
alias log='tail -1000f /home/tomcat/logs/catalina.out'
alias start='/home/startup.sh'
alias stop='/home/stop.sh'
감사합니다.
728x90
'프레임워크 > SpringBoot' 카테고리의 다른 글
[SpringBoot] GraphQL 간단한 예제 (0) | 2024.06.19 |
---|---|
[SpringBoot] jpg파일을 webp 파일로 변경하기(twelvemonkeys) (0) | 2024.06.18 |
[SpringBoot] MSA+JPA로 간단한 소스 구현하기 (0) | 2024.06.14 |
[SpringBoot] Window10 Nexus Repository 구성하기 (0) | 2024.06.12 |
[SpringBoot] Tomcat 으로 war 파일 배포하기 (0) | 2024.06.12 |