본문 바로가기
카테고리 없음

ant , maven , gradle

by 정보장교 2018. 2. 9.
반응형

자바 빌드(build)와 컴파일(compile)의 차이?


컴파일 : 소스코드 파일 등의 원시파일을 실행파일, 라이브러리 등의 Object 파일로 바꾸는 작업


빌드 : 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정


컴파일은 빌드의 부분 집합입니다.

빌드 과정은 제품마다 서로 다르지만 간단한 예를 하나 들어보면 다음과 같습니다.

보통 아래 과정은 Build Script에 의해서 한번에 자동으로 실행됩니다.

실제 예는 아래 나열한 것보다 수십배는 더 복잡합니다. ^^

  1. 소스코드관리시스템에 태그(베이스라인) 작성
  2. 작성된 태그(베이스라인) 체크아웃을 통해 빌드 전용시스템으로 소소코드 가져오기
  3. 새로운 빌드번호 획득 및 반영
  4. 컴파일(빌드) 시작
  5. 컴파일(빌드)시 발생한 에러 처리
  6. Doxygen 또는 JavaDoc 생성
  7. 팩키징 절차를 통해서 마스터 파일 생성
  8. 스모크 테스트 등 자동화 테스트 실시
  9. 테스트 결과 처리
  10. 빌드 결과를 관련자에 이메일로 전송
  11. 마스터 서버로 마스터 파일 복사
  12. 릴리즈 결과 전사 공지

또 빌드와 릴리즈는 항상 짝을 이뤄 따라 다니며, 수많은 B/R(Build/Release) 엔지니어들이 이에 대한 자동화와 효율성/생산성 증대를 위해서 연구를 하고 있지요. 


소프트웨어 프로젝트에서 빌드의 중요성에 대해서는 제가 이미 포스팅을 한 글이 있으니 참고하세요.


( 출처 : http://www.allofsoftware.net/2008/11/blog-post_35.html )




1. ant

 - XML , remote repository를 가져올 수 없었음(IVY 도입)

 - High flexibility but hard to understand. 


2. Maven

 - XML, remote repository를 가져올 수 있음

 - Strong convention but hard to implement custom logic

 - 라이브러리들이 서로 종속성을 가지는 경우 XML이 복잡해진다. 

 - XML은 계층적 데이터를 표현하기에는 좋지만 플로우나 조건부 상황을 표현하기는 힘들다. 

 - 상속형 (하위 XML이 필요없는 속성도 모두 표기)


3. gradle

 - Groovy, remote repository를 가져올 수 있음

 - convention 정책과 함께 custom 빌드 스크립트(groovy) 작성가능 

 - 멀티플랫폼 프로젝트에도 적합(상위 스크립트, 하위 스크립트 독립적으로 작성)

 - 상속이 아닌 주입


( 출처 : http://blog.naver.com/jeeyun617/220612514231 )




빌드 도구 설명, 메이븐 프로젝트 생성, 의존성 관리



* ant/maven/gradle 빌드 도구에 대한 초간단 설명

* eclipse에서 메이븐 디렉토리 구조의 프로젝트 생성

* junit 의존성 추가


( 출처 : https://youtu.be/Eg1Ebl_KNFg )



출처: http://giyatto.tistory.com/100 [행복은 습관입니다.]

출처: http://giyatto.tistory.com/100 [행복은 습관입니다.]

반응형