A.5. Maven 좌표
Maven 기능의 핵심 측면은 아티팩트를 찾고 이들 간의 종속성을 관리하는 기능입니다. Maven은 특정 아티팩트의 위치를 고유하게 정의하는 Maven 좌표 시스템을 사용하여 아티팩트의 위치를 정의합니다. 기본 좌표 튜플의 형식은 {groupId,artifactId,version}
입니다. 경우에 따라 Maven은 추가 좌표, 패키징 및 분류기 를 사용하여 좌표의 기본 세트를 보강하는 경우가 있습니다. 튜플은 기본 좌표 또는 추가 패키징 좌표를 사용하거나 패키징 및 분류자 좌표를 모두 추가하여 다음과 같이 작성할 수 있습니다.A tuple can be written with the basic coordinates, or with the additional packaging coordinate, or with the addition of both the packaging and classifier coordinates, as follows:
groupdId:artifactId:version groupdId:artifactId:packaging:version groupdId:artifactId:packaging:classifier:version
각 좌표는 다음과 같이 설명될 수 있습니다:
- groupdId
-
아티팩트 이름의 범위를 정의합니다. 일반적으로
org.fusesource.example
.NET Framework와 같이 패키지 이름의 전체 또는 일부를 그룹 ID 부여로 사용합니다. - artifactId
- 아티팩트 이름(그룹 ID에 따라)을 정의합니다.
- 버전
-
아티팩트의 버전을 지정합니다. 버전 번호는 최대 4개의 부분을 가질 수 있습니다.
n.n.n.n
은 버전 번호의 마지막 부분에 숫자가 아닌 문자를 포함할 수 있습니다(예:1.0-SNAPSHOT
의 마지막 부분은 영숫자 하위 문자열0-SNAPSHOT
). - 패키지
-
프로젝트를 빌드할 때 생성되는 패키지 엔터티를 정의합니다. OSGi 프로젝트의 경우 패키지는
번들
입니다. 기본값은 Cryostat입니다
. - 분류자
- 동일한 POM에서 빌드되었지만 콘텐츠가 다른 아티팩트를 구분할 수 있습니다.
그룹 ID, 아티팩트 ID, 패키징 및 버전은 아티팩트의 POM 파일에서 해당 요소에 의해 정의됩니다. 예를 들면 다음과 같습니다.
<project ... > ... <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <packaging>bundle</packaging> <version>1.0-SNAPSHOT</version> ... </project>
예를 들어 이전 아티팩트에 대한 종속성을 정의하려면 POM에 다음 종속성
요소를 추가할 수 있습니다.
<project ... > ... <dependencies> <dependency> <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> ... </project>
번
들은 특정 종류의 JAR 파일일 뿐이고, Cryostat는 기본 Maven 패키지 유형이므로 이전 종속성에서 번들 패키지 유형을 지정할 필요가 없습니다. 종속성에서 명시적으로 패키징 유형을 지정해야 하는 경우
type
요소를 사용할 수 있습니다.