프로그램설치

window10 + svn + Jenkins (4) - 젠킨스 svn연동 (다른 방법 시도 예정)

예쁜꽃이피었으면 2022. 10. 24. 14:47

- Window Server 10 

- visualsvn server 5.1.1

https://www.visualsvn.com/

- tortoisesvn 1.10.5

https://tortoisesvn.net/

- Jenkins 2.361.2

 https://www.jenkins.io/

- openjdk11.0.15.9-1 

https://github.com/ojdkbuild/ojdkbuild


현재까지 상황을 일단 적어보자면

내 pc에서 테스트 중인데

* 오라클 21 xe버전 설치

- https://www.oracle.com/kr/database/technologies/xe-downloads.html

OracleXE213_Win64.zip

- https://www.oracle.com/database/sqldeveloper/technologies/download/

sqldeveloper-22.2.1.234.1810-no-jre.zip

 

* 이클립스 설치 (스프링 + 메이븐)

(sts설치하고 데모 프로젝트 만들어서 하려고 했는데.. jsp설정하다가 막혀서 다시 이클립스 설치.. 기억에 스프링부트설치해서 빠르게 개발했던 기억이 있는데 다시 생각해보니 vue.js써서 저런 설정을 하지 않았었음..)

- 이클립스 버전은 2020-06이고 

- svn / 스프링은 마켓플레이스에서 내려받음.

- jdk는 java-1.8.0-openjdk-1.8.0.332-1

- 톰캣은 Tomcat 8.5 (port 8080)

- 프로퍼티를 local / dev / real로 나눠서 설정했는데.. 이 부분이 젠킨스에서 문제가 있어서 일단 여기까지 기록해두고 젠킨스 설정을 바꾸려고 한다.

 

* visualsvn server에 레파지토리 생성

-  https://localhost/svn/cicdTestSVN

 

* 젠킨스 버전은 Jenkins 2.361.2 (port 9090)이고 젠킨스에서 사용하는 jdk는 openjdk11.0.15.9-1 이다.

 

* 배포 테스트를 위한 톰캣 하나 더 설치함.Tomcat 8.5 (port 8888)

- C:\Program Files\Apache Software Foundation\Tomcat 8.5_Tomcat8_cide

 

* 이클립스에서 코드 수정 후 svn반영하고

젠킨스에서 빌드 시키면 svn에서 코드 읽어와서 빌드 후 war파일 생성

( C:\ProgramData\Jenkins\.jenkins\workspace\cicdTestJenkins\target )

젠킨스에서 war파일을 톰캣 하위로 복사 하고 압축해제.

cd "C:\ProgramData\Jenkins\.jenkins\workspace\cicdTestJenkins\target"
copy ROOT.war "C:\Program Files\Apache Software Foundation\Tomcat 8.5_Tomcat8_cide\webapps" /y
cd "C:\Program Files\Apache Software Foundation\Tomcat 8.5_Tomcat8_cide\webapps"
mkdir -p ROOT && cd ROOT
jar xvf ../ROOT.war

70번 시도함.......


1. 젠킨스 관리 > 플러그인 관리

Build Timeout
Checks API plugin
Deploy to container Plugin
Display URL API
Folders Plugin
Font Awesome API Plugin
Matrix Project Plugin
Maven Integration plugin
OWASP Markup Formatter Plugin
Pipeline: API
Subversion Plug-in
Timestamper
Workspace Cleanup Plugin 등등

 

2. Item생성

나는 maven project로 아이템을 생성해서 진행했는데

배포 설정을 하려면 프리스타일 프로젝트로 설정해야 하는 것 같다..

 

 

이 상태로 실행했을 때

톰캣 에러.. 

저 노란 부분 

jdbc-.properties가  jdbc-real.properties로 들어가야 하는데.. 영 못 읽어온다.. 

 

 

 

일단..프로퍼티 값 못 읽어오는 건 맞고..

프로퍼티 사용하지 않고 직접 입력해서 빌드해봤는데..여전히 에러가 나는 걸 보니까..

애초에 쓸데없는 문제 붙잡고 있었나보다.. 경로 다시 확인중..

 


현재 상황은

이클립스에서 수정해서 svn올리면 톰캣에 배포가 됨.

 

프로퍼티 설정 부분은 

<value>classpath:database/jdbc-#{systemProperties['spring.profiles.active']}.properties</value>에서

<value>classpath:database/jdbc-real.properties</value> 로 변경해서 svn에 올림

 

더보기

문제는 내가 프로퍼티를 real / dev / local 로 나눠서 작성을 해뒀는데.

 root-context.xml에 프로퍼티 설정이 동적으로 작성되어 있고..

<value>classpath:database/jdbc-#{systemProperties['spring.profiles.active']}.properties</value>

이런 식으로..

동적으로 사용을 해야 하는데  svn과 젠킨스에 바로 반영이 안되고 있음..

아예 real / dev를 따로 작성해서 젠킨스에 아이템을 두개 둬야 하는지..

일단 real / dev / local프로퍼티를 모두 빌드 시킨 후에 

젠킨스에서 배포할때 real의 설정만 줘야 되는 건지..아직 잘 모르겠고.

 

다른 분들 한거보니까.

일단 item만들 때 메이븐 프로젝트가 아니고 

프리스타일 프로젝트? 로 생성하고

배포도 나처럼 war를 다시 톰캣밑으로 복사한 후에 압축을 푸는게 아니고

바로 설정을 하던데....

다시 찾아봐야겠다..


 

반응형