# 자바 빌드 도구

# 자바 프로젝트를 메이븐 프로젝트로 변환하기

자바 프로젝트 선택후 마우스 우클릭 -> Configure 선택 -> Convert to Maven Project 선택

# 메이븐 프로젝트 구조

  • src/main/java : 프로젝트에 필요한 모든 자바 클래스를 개발해 저장하는 폴더
  • src/test/java : 프로젝트의 테스트 코드를 개발해 저장하는 폴더
  • src/main/resources : 응용프로그램에서 사용하는 텍스트 파일 등 추가 자원을 포함하는 폴더다
  • src/test/resources : 테스트에서 사용할 추가 자원을 포함하는 폴더.

# 일반적인 메이븐 프로젝트 구조를 요약한 모습

# 메이븐 빌드 파일 예제 pom.xml

  • project : pom.xml 파일의 최상위 수준 요소다
  • groupId : 프로젝트를 만드는 조직의 고유 식별자를 지정한다
  • artifactId : 빌드 과정에서 생성된 부산물의 고유한 기본 이름을 지정한다
  • packaging : 부산물에 사용할 패키지 형식(JAR, WAR, EAR등)을 지정한다. 이 요소를 생략하면 JAR를 사용한다.
  • version : 프로젝트에서 생성하는 부산물 버전을 지정한다
  • build : 플러그인, 자원 등 빌드 과정을 가이드하는 다양한 설정을 지정한다.
  • dependencies : 프로젝트의 디펜던시 목록을 지정한다.

# 메이븐 명령어

  • mvn clean : 빌드하기 전에 기존 빌드에서 생성된 부산물을 정리한다
  • mvn compile : 프로젝트의 소스코드를 컴파일(기본적으로 생성된 target 폴더에 결과를 저장) 한다.
  • mvn test : 컴파일된 소스코드를 테스트한다
  • mvn package : JAR과 같은 적절한 형식으로 컴파일된 코드를 패키징한다.

# 메이븐 vs 그레이들

가장 널리 사용되는 도구는 메이븐 이지만, 메이븐 단점 == xml 의 단점 : 작업하기 귀찮고, 가독성이 떨어짐 반면 그레이들의 가장 큰 장점은 그루비, 코틀린 프로그래밍을 이용해 친근한 도메인 특화 언어 DSL(domain-specifie language)를 적용한다는 점이다.

# 그레이들 빌드 파일 예제 build.gradle settings.gradle

# 그레이들 명령어

  • gradle clean : 이전 빌드에서 생성된 파일을 정리한다
  • gradle build : 응용프로그램을 패키징한다
  • gradle test : 테스트를 실행한다
  • gradle run : application 플러그인의 mainClassName 으로 지정된 메인 클래스를 실행한다.

실전 자바 소프트웨어개발