반응형

Maven - Overview


(원문 위치 : http://www.tutorialspoint.com/maven/maven_overview.htm )

What is Maven?

Maven은 프로젝트 관리와 내포(comprehension) 도구 이다. Maven은 개발자에게 완전한 build lifecycle framework를 제공한다. 개발팀은 Maven이 표준 directory layout과 기본 build lifecycle을 사용하는 것으로써 거의 소모되는 시간 없이 프로젝트의 build infrastructure를 자동화 할 수 있다.

다수의 개발팀 환경에서 Maven은 매우 짧은 시간에 표준에 따라 작업하기 위한 방법을 설정할 수 있다. 대부분의 프로젝트에서 간단하고 재사용가능하게 설정하기 때문에 Maven은 레포트 생성, 체크, build와 테스팅 자동화 설정 동안 개발자의 삶을 편하게 한다.

Maven은 개발자에게 아래를 관리하기 위한 방법을 제공한다.
  • Builds

  • Documentation

  • Reporting

  • Dependencies

  • SCMs

  • Releases

  • Distribution

  • mailing list

요약하기 위하여 Maven은 프로젝트 build프로세스를 표준화하고 단순화하였다. 이는 컴파일, 배포, 문성화, 팀협업과 다른 끊임없는 작업을 관리한다. Maven은 재상용성을 증가시기고 작업에 관련된 대부분의 build에 관여한다.

Maven History

가장 우선되는 Maven의 목표는 개발자를 제공하는 것이다.
  • A comprehensive model for projects which is reusable, maintainable, and easier to comprehend. (프로젝트를 위한 포괄적인 모델은 재사용, 유지보수가 가능하고 내포하기 더 쉽다.)

  • plugins or tools that interact with this declarative model. (선언적 모델로 상호작용하는 plugin 도는 도구)

Maven 프로젝트 structure와 contents는 xml file- Project Object Model(POM)으로써 언급되는 pom.xml -에 선언된다. 이는 전체 Maven 시스템의 기본적인 단위이다. POM에 대한 더 자세한 내용은 이후 강좌에서 언급된다.

Convention over Configuration

Maven은 개발자가 build process 그 자체를 생성할 필요가 없는 것을 의미하는 'Convention over Configuration'을 사용한다.

개발자는 매번 상새 설정을 언급할 필요가 없다. Maven은 프로젝트에 대한 분별있는 기본 동작을 제공한다. Maven 프로젝트가 생성되어 질 때, Maven은 기본 프로젝트 구조(structure)를 생성한다. 개발자는 단지 적절하게 파일을 위치시키면 되고 pom.xml내 어떠한 설절을 정의할 필요는 없다.

에를 들면, 아래 테이블은 프로젝트 소스 코드 파일, 리소스 그리고 다른 설정을 위한 기본 값을 보여준다. '${basedir}'은 프로젝트 위치를 의미한다고 가정하자.
ItemDefault
source code${basedir}/src/main/java
resources${basedir}/src/main/resources
Tests${basedir}/src/test
distributable JAR${basedir}/target
Complied byte code${basedir}/target/classes

프로젝트를 build하기 위해 Maven은 life-cycle 목표와 프로젝트 의존관계(Maven plugin 능력-capability-와 기본적인 규약에 의존한)를 언급하기 위해 개발자 옵션을 제공한다. 작업과 관련된 많은 프로젝트 관리와 build가 Maven plugin에서 관리되어 진다.

개발자는 가각의 plugin이 어떻게 동작하는지 이해할 필요없이 주어진 maven 프로젝트를 build할 수 있다. Maven Plug-in은 이후 강좌에서 자세히 언급된다.




반응형

+ Recent posts