Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- jenkins github 연동
- jenkins 설치
- jenkins github
- jenkins install
- subnetmask
- Jenkins Pipeline
- vue.js
- Jenkins
- MongoDB
- docker network
- jpa
- MySQL
- grpc
- jenkins jdk
- IntelliJ
- error
- spring
- nginx
- jenkins maven
- grafana
- 리눅스
- 리액트
- JavaScript
- gradle
- REACT
- Docker
- Spring Boot
- CI/CD
- Linux
- java
Archives
- Today
- Total
뭐든 즐기면서 ;)
Jenkins Deploy / Jenkins maven 본문
728x90
1. Maven 설정
- builder maven 설정 ( 추후 jenkins job 구성 Build 부분에서 쓰일 것임 )
- Maven 생성
- Add Maven 클릭
- Jenkins 내에서 쓰일 Name을 작성하고, Version을 선택해 줍니다.
- https://tadaiswhatever.tistory.com/78 여기서 생성한 jenkins job(item) 구성화면으로 이동합니다.
- Build 영역으로 이동합니다.
- Add build step 설렉터에서 'Invoke top-level Maven targets'를 선택합니다.
- 위에서 만든 Maven Name(M3)을 Maven Version에서 선택해줍니다.
- Goals는 maven build 단계를 입력합니다.
** 필자는 여러 모듈 중 공통으로 사용하는 gather-common는 clean install하여 jar파일로 묶고, gather-front 모듈만 war로 packaging하여 배포할 것이기 때문에 아래와 같이 내용수정을 해주었습니다. **
maven 특정 모듈 빌드하는 방법 : https://tadaiswhatever.tistory.com/85
# maven 다중 모듈 중 특정 모듈 빌드
-pl gather-common clean install
-pl gather-front clean package
- 이 설정으로 gitHub에서 가져온 코드가 war로 packaging될 것입니다. (추후에 jenkins job build log에서 확인할 수 있습니다.)
- 실제 서버에서 해당 경로로 이동하여 보면 war파일이 생성된 것을 확인할 수 있습니다.
2. Deploy하기 위한 설정
- 다시 jenkins job(item) 구성화면으로 이동하여 Build영역에서 'Add build step'을 추가해 줍니다.
- 'Execute shell'을 선택합니다. 이는, linux에 shell명령어를 입력할 수 있는 영역이 생성되어지는 것입니다.
- shell script내용은 커스텀입니다. 아래 적어드리는 항목은 커스텀을 하기 위해 공통적으로 알고 계셔야 할 부분입니다.
- shell script가 실행되는 현 directory는 '~/.jenkins/workspace/jenkins job name'입니다. 즉, pwd는 '~/.jenkins/workspace/data-edit-tool/'입니다.
- war 파일은 ~/.jenkins/workspace/data-edit-tool/module/target 아래 생성됩니다.
- BUILD_ID=dontKillMe 이 명령줄은 필수로 입력해 주셔야 합니다. jenkins는 job build가 완료되면 job 안에서 실행된 모든 프로세스를 죽인다고 합니다. 이 뜻은 마지막에 ./startup.sh로 실행한 tomcat 프로세스 또한 죽게된다는 의미입니다. tomcat 프로세스가 죽지 않게 하여 app 운영을 할 수 있도록 꼭 입력해 주어야 하는 명령줄입니다.
- script 내용은 아래와 같습니다.
app="gather-front"
# 위 maven build를 통하여 만들어진 war파일이 만들어진 경로
org_war_path="./$app/target"
# 실 application tomcat root
real_path="/home/minds/platform/tomcat-platform-renewal-8.5.45"
BUILD_ID=dontKillMe
# tomcat shutdown
$real_path/bin/shutdown.sh
sleep 1
# 기존 app 소스 삭제 후 war 백업
rm -r $real_path/webapps/ROOT
mv $real_path/webapps/ROOT.war $real_path/webapps/ROOT.$(date +%Y%m%d)$(date +%H)$(date +%M)$(date +%S).bak
sleep 1
# maven build로 생성된 war파일명 변경
mv $org_war_path/*.war $org_war_path/ROOT.war
# war파일을 application root로 옮기기
mv $org_war_path/ROOT.war $real_path/webapps/ROOT.war
sleep 7
# tomcat start
cd $real_path/bin
./startup.sh
- 수정한 구성을 저장하고 jenkins job을 빌드해봅니다.
- 빌드가 진행되는 것을 확인할 수 있습니다. 체크 이모티콘을 클릭하여 log를 확인해 봅니다.
- maven build가 이루어지고 temp sh파일이 생성되어 실행된 것을 확인할 수 있을 것입니다.
- 정상적으로 shell 내용이 실행되어 Deploy된 것을 확인할 수 있습니다.
728x90
'서버 > JENKINS' 카테고리의 다른 글
Jenkins 설치 2 - jdk 설치 및 JAVA_HOME설정 (1) | 2022.09.30 |
---|---|
Jenkins 설치 1 - jenkins package 설치 (0) | 2022.09.30 |
Jenkins pipeline / Jenkins github maven (0) | 2022.05.18 |
Jenkins Github 연동 / Github Jenkins 연동 (0) | 2022.05.17 |
Jenkins install with tomcat/ Jenkins 설치 with tomcat (0) | 2022.05.17 |
Comments