봉 블로그

Hudson + (svn + ant + svneton) 설정 본문

개발환경

Hudson + (svn + ant + svneton) 설정

idkbj 2009. 8. 12. 16:26
 
[관련 url] 
    Hudson -  https://hudson.dev.java.net/
    ant - http://ant.apache.org/
    sventon - http://www.sventon.org/
 
 
 프로젝트 관리의 흐름은
 

 
 
 
1. svn 설치
 - svn서버svn클라이언트 설치.
 - 이클립스에 svn repositories 에서 new -> Repository Location (ex. svn://localhost/jjul) 설정. (ex. 사전에 Apple 이란 이름의 프로젝트 생성했음.)
 -  D:\SVNRepository (repositories root) , jjul (프로젝트 저장소), Apple (진행할 프로젝트)
 
2. hudson 설치
 - 허드슨에서 최종소스 관리를 위한 폴더 생성. (ex. D:\hudsonSRC 이렇게 빈폴더 생성했음.)
 - 방금 생성한 폴더에 대해 환경변수를 잡아줘야함. (ex. 변수이름: HUDSON_HOME 변수값: D:\hudsonSRC)
   *SVN에 등록된 최종 소스를 Hudson Source로 옮기기 위해서 hudson의 소스를 관리할 홈디렉토리의 설정이 필요하기 때문
 - 이클립스 내에 웹프로젝트 생성(ex. hudsonWeb 으로 생성했음.) 해서 WebContent 에 허드슨사이트 가서 다운받은 hudson.war 를 임포트 시킨다.
 - 허드슨 잘 돌아가나 테스트.. (ex. http://localhost:8080/hudsonWeb) --> 음.. 잘 돌아가는군..ㅋㅋ
 
 2-1. hudson 내부 설정
 - 새 작업 ->  작업명 (Apple) -> Build a free-style software project -> ok
 - Configure -> Project name (ex. Apple) -> Source Code Management -> Modules ->
    Repository URL (ex. svn://localhost/jjul/Apple) -> Local module directory (optional) (ex. jjul) ->
   (이렇게 하면 svn 소스가 허드슨홈으로 복사됨)
 - Build Now -> Build History -> 해당 히스토리 클릭 -> 변경사항 확인가능
 - svn 에서 허드슨홈 (ex. D:\hudsonSRC\jobs\Apple\workspace\jjul) 으로 소스 이동 한것을 확인 할수있음.
 - Hudson 관리 -> Configure System -> Home directory D:\hudsonSRC (홈디렉토리 제대로 잡혔나 확인!)
 

3. ant 설치

 - Hudson에서 옵션으로 사용할 수 있는 다양한 기능들은 대부분 Ant의 build파일을 통하여 실행할 수 있다.

   즉, 실제 작업은 ANT가 하는 것이고 Hudson은 ant를 실행하고 그결과를 보조적으로 보여주는 역할 정도를 담당한다고 할 수 있다.

 

 - (ex. build.xml) 

<?xml version="1.0" encoding="utf-8"?>

<!-- basedir is hudson's base source directory -->
<project name="Apple" default="all" basedir="D:\hudsonSRC\jobs\Apple\workspace\jjul">
 
 <property name = "src.dir" value = "${basedir}/src"/>
 <property name = "class.dir" value = "${basedir}/WebContent/WEB-INF/classes"/>
 <property name = "original.dir" value = "D:\project\ibizware\workspace3.4.1\Apple"/>
 <property name = "gwtlib.dir" value = "D:\project\ibizware\workspace3.4.1\Apple\WebContent\WEB-INF\lib" />
 
 <!-- ClassPath -->
 <path id="project.class.path">
  <pathelement location="${gwtlib.dir}/" />
  <fileset dir="${gwtlib.dir}">
   <include name="*.*"/>
  </fileset>
  
 </path>
 
 <path id="project.class.common.path">
  <pathelement location="${class.dir}/" />
  <fileset dir="${class.dir}">
   <include name="**/*.*"/>
  </fileset>
 </path>

 <!-- Delete Class -->
 <target name="clean">
  <delete verbose="true">
   <fileset dir="${class.dir}" >
    <include name="**/*.class"/>
   </fileset>
  </delete>
 </target>
 
 <!-- source compile -->
 <target name="compile">
  <javac deprecation="off"
   debug="on"
   srcdir="${src.dir}"
   destdir="${class.dir}" >
   <classpath refid="project.class.path"/>
  </javac>
 </target>
 
 <!-- Project Copy -->
 <target name="copies">
  <copy todir="${original.dir}" failonerror="false" overwrite="yes">
   <fileset dir="${basedir}">
    <include name="**/*.*" />
   </fileset>
  </copy>
 </target>

 <target name="all" depends="clean,compile" />
 
</project> 

 

 - Hudson 관리 -> Configure System -> Ant -> name (ex. DEFAULT_ANT) -> ANT_HOME (ex. D:\work\apache-ant-1.7.1) -> save

 - Configure -> Build -> Invoke Ant -> Ant Version (ex. DEFAULT_ANT) -> Build File (ex. D:\project\ibizware\workspace3.4.1\Apple\build.xml) ->save

 

4. hudson 설정 테스트

 - local에서 source를 수정하여 SVN에 Commit하였을 때 Hudson을 통해 Hudson Source 로 프로젝트를 복사해 보자.

 - 아래와 같은 왼쪽화면에서 Build Now를 클릭.

 - 그러면 Build History에 진행상황이 나타납니다. 진행이 완료되면 해당 History를 클릭.

 

5. 빌드 트리거 설정 

 - Build after other projects are built 이녀석은 지정된 프로젝트의 빌드가 성공하면 자동으로 프로젝트를 빌드해 주는 기능입니다.

 - Poll SCM 이것은 주기별로 변경사항을 체크하여 변경사항이 있는 경우만 빌드를 실행합니다.

 - Build periodically 마지막으로 이녀석은 변경여부에 상관없이 주기별로 무조건 빌드를 실행합니다

 - Configure -> Build Triggers -> (ex. Build periodically) -> 주기설정 방법은 : 분 시간 날짜 월 요일 -> Schedule ->

 (ex. )

#분 시간 날짜 월 요일
# 매일 12시에 실행
#00 12 * * *
# 매일 14시 10분,50분 실행(테스트)
10 14 * * *
50 16 * * *  

 

5 * * * * (5분간격으로) -> 쭐쒸세팅..ㅋ

 

6. sventon 설치

 - svn의 상태를 시각적으로 보여준다. (diff 기능도 있음)

 - 이클립스 내에 웹프로젝트 생성하고 WebContent에 svn.war를 임포트 시킨다.

 - sventon 잘돌아가나 테스트 (ex. http://localhost:8080/svn) 음.. 역시나 잘돌아가는군..ㅋ 쫌 이쁘장한데~ㅋㅋ 후후후

 - 프로젝트 연동: repository name (ex. jjul) -> svn url root (ex. svn://localhost/jjul) -> 비번넣을껀지 설정 -> zip 으로 export 할껀지 설정

 

7. hudson 과 sventon 연동

 - Configure -> Source Code Management -> Repository browser -> sventon 2.x -> URL (ex. http://localhost:8080/svn/) -> Repository Instance (ex. Apple)

 - 테스트: 소스수정 커밋후에 허드슨가서 build now -> 히스토리 확인

 - 프로젝트 -> Changes -> sventon 2.x -> 수정사항을 확인할수 있다.