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 | 31 |
Tags
- grpc
- grafana
- Jenkins Pipeline
- jenkins maven
- jenkins jdk
- CI/CD
- 리액트
- spring
- jenkins github 연동
- MySQL
- error
- Linux
- Docker
- java
- vue.js
- jpa
- MongoDB
- IntelliJ
- JavaScript
- Jenkins
- Spring Boot
- subnetmask
- jenkins install
- gradle
- jenkins 설치
- docker network
- REACT
- nginx
- jenkins github
- 리눅스
Archives
- Today
- Total
뭐든 즐기면서 ;)
Jenkins 자동배포 설정 3 - pipleline 작성2(Maven Build) 본문
728x90
Jenkins 자동배포
1. GitHub연결
2. Maven 설정
3. pipleline 작성
- Pipeline에 Maven Build 부분을 작성할 것입니다. stage('Build') 부분을 봐주시면 됩니다. (아래, pipeline의 간단한 문법을 설명드리겠습니다.)
- environment {} 영역에 script내에서 사용할 변수를 선언할 수 있습니다.
- ${변수명} = 변수를 사용할 때 쓰는 표기법입니다.
- sh "cli 명령어 사용 가능"
- 참고로 shell이 실행되어지는 경로는 "${JENKINS_HOME}"이며, sh "./"하였을 경우에는 ${JENKINS_HOME}/workspace/${JOB_NAME}@tmp 경로가 적용되어 집니다. (이해하시기에는 직접 실행해보는 것이 좋을 것 같습니다. ☆)
pipeline {
agent any
environment {
jenkins_wksp = "${JENKINS_HOME}/workspace/${JOB_NAME}" // = ${JENKINS_HOME}/workspace/jenkins item명칭
module = "front"
build_modue = "gather-${module}"
}
tools {
maven "M3"
}
stages {
stage('git checkout') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/canary_new']], extensions: [], userRemoteConfigs: [[credentialsId: 'github', url: 'https://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@github.com/mindslab-ai/data-edit-tool.git']]])
}
}
stage('Build') {
steps {
echo "====================== START packaging ========================="
sh "cd ${jenkins_wksp}"
sh "mvn -pl ./gather-common clean install" // 공통module(.jar)로서 build_module에서 사용할 module만 install 진행.
sh "mvn -pl ./${build_modue} clean package"
}
}
}
}
- item 빌드를 실행하면, ${jenkins_wksp}/moudle명/target/ 하위에 war파일이 만들어집니다.
* 필자의 경우 jdk11 또는 jdk17버전으로 실행되는 젠킨스를 설치하였고, module의 경우 jdk8로 돌아가야만 하는 상황이었습니다. 그 상황에서 위와같이 jenkins item build를 실행하였을 경우 아래와 같은 Error에 직면합니다.
An illegal reflective access operation has occurred ...
이는 jdk버전이 맞지 않아 발생하는 에러입니다. 이를 해결하기 위해서는 이 item에서만 사용할 jdk 버전을 설치 후 적용해 주어야 합니다.
- 설치 방법 : https://tadaiswhatever.tistory.com/123\
- 적용 : pipeline 추가 작성
pipeline {
...
tools {
maven "M3"
// 추가 작성
jdk "JAVA8" // 위 설치 방법에서 작성한 JDK NAME과 일치시킵니다.
}
...
}
728x90
'서버 > JENKINS' 카테고리의 다른 글
Jenkins Error : Exec exit status not zero. Status 126 (0) | 2023.03.30 |
---|---|
Jenkins 자동배포 설정 3 - pipleline 작성3(Tomcat 실행) (1) | 2022.10.05 |
Jenkins Pipeline item별 JDK 설정 방법 (0) | 2022.10.05 |
Jenkins 자동배포 설정 3 - pipleline 작성1(Git Checkout) (0) | 2022.09.30 |
Jenkins 자동배포 설정 2 - Maven 설정 (0) | 2022.09.30 |
Comments