※ 메이븐 저장소

- 중앙 저장소 : 오픈소스 라이브러리, 메이븐 플러그인, 메이븐 아키타입을 관리하는 저장소. 메이븐 2.0의 중앙 저장소 URL은 http://repo1.maven.org/maven2/  이다. 중앙 저장소는 원격 저장소 중의 하나이다. 중앙 저장소는 개발자가 임의로 라이브러리르 배포할 수 없다.

- 원격 저장소 : 메이븐 기반으로 프로젝트를 진행하는 경우 프로젝트에 필요한 모든라이브러리가 메이븐 중앙 저장소에 있는 것은 아니다. 이처럼 중앙 저장소에 없는 라이브러리를 한 곳에 모아두기 위하여 별도의 메이븐 저장소를 설치해 관리하는 것이 가능하다. 원격 저장소는 회사내에서만 사용하기 위한 용도의 사내 원격 저장소와 스프링소스에서 제공하는 메이븐 저장소처럼 외부에 위치하는 외부(공개) 원격 저장소가 있다.

- 로커 저장소 : 로컬 저장소는 메이븐을 빌드할 때 다운로드하는 라이브러리, 플러그인을 관리하는 개발자 pc의 저장소이다. 기본 로컬 저장소는 USER_HOME/.m2/repository 디렉토리이다.

http://mvnrepository.com  메이븐 중앙저장소에서 관리하는 라이브러리를 검색할 수 있도록 지원한다.

※ 의존 라이브러리 버전

메이븐은 의존 관계에 있는 라이브러리의 버전을 효율적으로 관리할 수 있도록 몇 가지 옵션을 제공한다.

(,) : 해당 버전을 제외

[,] : 해당 버전을 포함

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>[3.8, 4.8)</version>
</dependency>

JUnit 라이브러리 버전 중에 4.8보다 작으면서, 3.8보다 크거나 같은 버전중에서 가장 최신 버전과 의존 관계를 가진다. JUnit 라이브러리는 4.8보다 작은 버전 중 최신 버전인 4.7버전과 의존 관계를 갖도록 설정된다.

라이브러리 버전이 변경될 때마다 버전을 변경하는 것이 불편할 수 있다. 버전 번호를 변경하지 않고 가장 최신 버전의 라이브러리와 의존관계를 갖도록 설정하는 방법이 있다.

<version>LATEST</version> 또는 <version>RELEASE</version>

하지만, 라이브러리가 최신버전이라 기능이 비정상적으로 동작할 가능성이 있기 때문에 좋은 선택은 아니다.

Maven

※ 프로젝트 초반에 구축해야 할 것으로 생각하는 개발환경

- 빌드 환경을 자동화하기 위한 툴

- 개발을 위한 통합 개발환경(IDE)

- 소스 코드와 문서 관리를 위한 형상관리 툴

- 소스 코드의 지속적인 테스트 및 통합을 위한 지속적 통합

 

프로젝트 생성

명령 프롬프트에서

mvn archetype:generate -DgroupId=net.javajigi -DartifactId=myfirst -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 입력한다.

 

groupId : 일반적으로 생성하는 프로젝트의 도메인명

artifactId : 프로젝트 이름

 

maven archetype list

명령 프롬프트에서 mvn archetype:generate -DarchetypeCatalog=internal (명령어) 입력한다.

 

※ 메이븐 설정 파일

- settings.xml : 메이븐 빌드 툴과 관련한 설정 파일

- pom.xml : 메이븐 기반 프로젝트에서 사용하는 설정 파일 (다른이름을 사용하여도 된다)

1.pom.xml의 기본 구성요소

- 프로젝트 기본 정보

- 빌드 설정

- 프로젝트 관계 설정

- 빌드 환경

 

※ 메이븐 라이프사이클

3개의 라이프사이클을 제공함

1.소스 코드를 컴파일, 테스트, 압축, 배포를 담당하는 기본 라이프사이클

2.빌드한 결과물을 제거하기 위한 clean 라이프사이클

3.프로젝트 문서 사이트를 생성하는 site 라이프사이클

+ Recent posts