Hudson과 CruiseControl for Java 프로젝트의 차이점은 무엇입니까?
제목이 그것을 요약한다고 생각합니다. Svn의 Java 프로젝트의 지속적인 통합 빌드에 둘 중 하나가 더 나은 이유를 알고 싶습니다.
오랫동안 CruiseControl 커미터 이자 Hudson을 사용해 본 적이없는 사람으로서 저는 꽤 편견이 있지만 제 생각은 다음과 같습니다.
Hudson은 시작하고 실행하기가 훨씬 쉽고 (대부분은 멋진 웹 인터페이스에서) 매우 활동적인 플러그인 개발 커뮤니티를 가지고 있습니다.
CruiseControl은 많은 타사 제품 을 지원하며 플러그인 사전 구성 및 프로젝트와 함께 구성 정보의 버전을 지정할 수있는 include.projects와 같은 xml 구성으로 몇 가지 깔끔한 트릭을 수행하는 이점이 있습니다.
빌드가 몇 개만 있다면 Hudson이 확실한 승자라고 생각합니다. 당신이 많은 것을 가질 것이고 xml을 신경 쓰지 않는다면 CruiseControl의 xml 구성 트릭이 진정한 강점이 될 것이라고 생각합니다.
이 답변에 동의 하지만 몇 가지 사항을 추가하고 싶습니다.
요컨대, Hudson (업데이트 : Jenkins )이 이제 더 나은 선택 일 것입니다. 무엇보다 먼저 작업 (CC 어휘의 "프로젝트")을 만들고 구성하는 것이 CruiseControl의 XML 구성 파일을 편집하는 것과 비교하여 Hudson의 웹 UI를 통해 훨씬 더 빠르기 때문입니다. . 후자는 특별히 어렵지 않습니다. 단순히 더 느리고 지루합니다.
CruiseControl은 훌륭했지만 Dan Dyer의 적절한 이름의 블로그 게시물에서 언급했듯이 왜 여전히 Hudson을 사용하지 않습니까? , 그것은 첫 번째로 고통받습니다. (음, 영국처럼, 당신이 원한다면, 나중에 다른 사람들이 새로운 기술로 그것을 추월하기 시작했을 때 산업 혁명에 접어 들었습니다.)
우리는 CruiseControl을 많이 사용했고 점차 Hudson으로 전환하여 마침내 독점적으로 사용했습니다. 그리고 훨씬 더 많이 :이 과정에서 Hudson 작업을 설정하고 관리하는 것이 매우 편리하기 때문에 이전보다 많은 다른 작업에 CI 서버를 사용하기 시작했습니다. (현재 Hudson에는 40 개 이상의 작업이 있습니다 : 안정 및 개발 브랜치에 대한 일반적인 빌드 및 테스트 작업, 릴리스 관련 작업 (설치 프로그램 빌드 등), 코드베이스에 대해 일부 (실험적) 메트릭을 실행하는 작업, 실행되는 작업 (느린 ) 특정 데이터베이스 버전에 대한 UI 또는 통합 테스트 등)
이 경험에서 나는 복잡한 빌드를 포함하여 많은 빌드가 있더라도 Hudson은 매우 안전한 선택이라고 주장하고 싶습니다. 왜냐하면 CC처럼 기본적으로 무엇이든 할 수 있기 때문 입니다. Ant 또는 Maven 대상, Unix 쉘 스크립트 또는 Windows .bat 스크립트를 원하는 순서대로 실행하도록 작업을 구성하기 만하면됩니다.
타사 제품 ( 여기 Jeffrey Fredrick이 언급 함)에 관해서 는 좋은 점이지만 Hudson이 빠르게 따라 잡고 있으며 이미 매우 많은 수의 플러그인을 사용할 수 있다는 인상입니다 .
저에게 CruiseControl에 대해 그리워하는 두 가지 사항은 다음과 같습니다.
- 깨진 빌드에 대한 경고 이메일은 Hudson보다 더 많은 정보를 제공했습니다. 대부분의 경우 근본 원인은 CC의 멋지게 형식화 된 HTML 메일 자체에서 분명한 반면, Hudson에서는 일반적으로 Hudson 웹 UI 링크를 따라 가고 세부 정보를 보려면 약간 클릭해야합니다.
- CruiseControl을 대시 보드는 더 나은에 "로, 상자 밖으로, 적합 정보 라디에이터 (당신은 항상 신속하게 모든 프로젝트의 상태를 볼 수 있습니다 그래서, 공공 모니터에 표시, 또는 벽에 투사)". Hudson의 첫 페이지에서는 작업 행을 모두 멋지게 녹색 / 빨간색으로 만들기 위해 Greasemonkey 트릭이 필요했습니다.
사소한 면책 조항 : 저는 지난 1 년 동안 CC 프로젝트를 면밀히 따르지 않았습니다. (그러나 간단히 살펴보면 극적인 방식으로 변경되지 않았습니다.)
참고 (2011-02-03) : Hudson은 Jenkins 로 이름 이 변경 / 포크 되었습니다 (Hudson 제작자 Kohsuke Kawaguchi 및 기타). Hudson이라는 이름을 관리하는 Oracle이 " Hudson " 을 유지하는 것처럼 보이지만 , Oracle의 말에 상관없이 Jenkins 를 사용하는 것이 좋습니다 .
저의 마지막 프로젝트는 CruiseControl에서 시작했습니다. 흔들렸다. 그런 다음 우리는 더 흔들리는 허드슨으로 이사했습니다. 내가 Hudson에 대해 좋아했던 것 :
업스트림 및 다운 스트림 프로젝트. 따라서 데이터 액세스 코드에 대한 커밋은 결국 프레젠테이션 레이어의 빌드도 트리거합니다.
기존 프로젝트를 새 프로젝트의 시작점으로 쉽게 사용하십시오. 따라서 개발 브랜치를 만드는 습관이 있다면 이러한 프로젝트가 지속적으로 통합되는지 확인하는 것은 매우 쉽습니다.
한 가지 차이점은 Hudson이 천재 지성인 Kohsuke Kawaguchi의 산물이라는 것입니다. 그 때문에 일관되고 일관되고 견고합니다. 단점은 진행 속도에 제한이있을 수 있습니다. 그러나 Kohsuke는 엄청나게 다작이므로 그렇게 걱정하지 않을 것입니다. 그리고 확장 가능하므로 Kohsuke가 시간이 없거나 원하지 않는 것이 있으면 직접 할 수 있습니다.
Cruise Control과 Hudson을 모두 살펴 보았지만 설정 및 구성이 훨씬 쉽기 때문에 Hudson을 선택했습니다. Hudson은 요즘 정규 릴리스와 플러그인을 통한 많은 확장 성으로 매우 널리 사용되는 것 같습니다. 나는 그것을 적극 추천합니다.
Hudson은 제 생각에 더 사용자 친화적 인 대안입니다. 웹 인터페이스를 통해 완벽하게 설정하고 유지 관리 할 수 있습니다 (물론 웹 앱의 초기 설치는 제외).
CruiseControl에 대해 이것이 말할 수있는 유일한 방법은 내장 XML 파일 편집기를 계산하는 것입니다.
그래도 두 가지를 모두 사용 했으므로 자동화 된 빌드가없는 것보다 더 선호합니다.
나는 Cruise control을 시도했다 ... 좋다 ... 그러나 문서는 조각화되어있다. 대시 보드가 혼란 스럽습니다. 위젯 생성도 혼란 스럽습니다. 허드슨을 시도한 적이 없습니다. 주말에 시도합니다.
최근에 Subversion을 사용하여 Borland BDS 2006 프로젝트를 구축하기 위해 Jenkins를 설정했으며 매우 만족합니다. 아직 CruiseControl을 사용한 적이 없어서 비교할 수 없습니다. 자세한 내용은 내 블로그 게시물을 읽어보십시오.
'Program Tip' 카테고리의 다른 글
WPF DataGrid에서 ComboBoxColumn의 ItemsSource 바인딩 (0) | 2020.10.25 |
---|---|
Java에서 부울 배열 채우기 (0) | 2020.10.25 |
C #을 사용한 연도의 날짜 차이 (0) | 2020.10.25 |
Eclipse LogCat 뷰어에서 태그 이름을 필터링하는 방법 (0) | 2020.10.25 |
SQL Server에서 VARCHAR 열의 최대 길이 검색 (0) | 2020.10.25 |