3번째 OJT 과제였던 local 프로젝트를 젠킨스를 통하여 리눅스 서버로 build 하는 것을 해보았습니다.
👆 과정
1. Webhook으로 gitlab에 있는 프로젝트를 jenkins와 연동하기
2. 'new item' 을 눌러서 프로젝트를 생성합니다. (in jenkins에서)
3. '구성' 메뉴를 눌러서 호스팅 서버와 연결하기 위한 설정들을 해줍니다. ✨중요
3-1 ) 소스코드 관리

3-2 ) 빌드 유발

3-3 ) 빌드 환경

< Transfers >
- Source files : 어떤 파일들을 옮길지 기입. target 디덱토리 밑에 모든 jar 파일들을 옮기겠다는 뜻 입니다.
- Remove prefix : 파일명만 따오기 위해 target이라고 써줍니다.
- Remote directory : ssh 서버 어느 디렉토리에 build를 할 것인지 써줍니다.
3-4 ) 빌드

- 빌드를 할 시에 명령어로 mvn clean package 를 쳤는데 오류가 나서 수정한 부분.
이유 : 버전을 명시해 주지 않아서 생긴 오류 였다.
해결 : Build 탭의 'Invoke top-level Maven targets' 설정을 추가하여 메이븐을 선택해주고,
Goals 부분엔 package -Dmaven.test.skip에 true 옵션을 주어서 test는 돌지 않도록 설정해주었다.

3-5 ) 빌드 후 조치

✌ 결과
1.

에러 : generatorConfig.xml 파일을 찾을 수 없음
이유 : generatorConfig.xml 파일이 GeneratorConfig.xml 로 생성하여 대소문자가 맞지 않아 생긴 오류 ,,
해결 : generatorConfig.xml로 파일 이름 변경 후 push
2.

에러 : generatorConfig.xml 파일내부의 postgresql 경로를 찾을 수 없음
이유 : 빌드를 할 시에 generatorConfig.xml 파일은 거치지 않는데.. 좀 이상하다..?
해결 : generatorConfig 파일의 저 경로를 마구잡이로 변경해보고 build 해봄 -> build 역시 안됨
-> pom.xml 파일을 보니

About Executions
Maven 프로젝트는 JAR나 WAR와 같은 각각의 Packaging 방법이 존재하며, 해당 Packaging 방법에 따라 진행해 나아가는 작업들의 목록들(Phases) 가 존재한다. 그리고 각 Phase 는 구체적인 작업이 명시되어 있는 Maven-Plugin과 해당 Plugin의 Goal로 정의 된다.
이렇게 Maven에서 정의해 놓은 Lifecycle 에 추가적인 작업을 하고자 할때 “Executions” 요소를 쓴다.
출처 : https://sangpire.tistory.com/53
About "Executions" Tag on Maven
Using Dojo with Maven 이라는 문서를 살펴보면, Maven 의 pom.xml 파일에 다음과 같은 코드를 추가하여 dojo 코드를 다운받는 예제가 존재한다. org.apache.maven.plugins maven-dependency-plugin ..
sangpire.tistory.com
그래서, pom.xml에 executions 태그를 삭제하고 다시 push 한 후 build를 하였다.
3.

에러 : 8080포트는 이미 사용중이야.
이유 : jenkins를 일반 웹에서 ip로 접속하는데, build시에 test 진행될 때 jenkins와 test하는 프로젝트 두개가 포트 충돌이 일어나서 였다.
해결 : test를 skip하는 옵션을 추가해준다.
[test를 skip하기]

4.


👏 기동 시켜보기



'Jenkins & Docker' 카테고리의 다른 글
Docker의 Private registry 통해 ssh 서버로 이미지 배포 (1) | 2021.07.14 |
---|---|
Gitlab, Jenkins, Docker 작동 원리 (1) | 2021.06.01 |