3.5. Maven 아티팩트 및 좌표 정보
Maven 빌드 시스템에서 기본 빌딩 블록은 아티팩트 입니다. 빌드 후 아티팩트의 출력은 일반적으로 JAR 또는 WAR 파일과 같은 아카이브입니다.
Maven의 핵심 측면은 아티팩트를 찾고 해당 아티팩트 간의 종속성을 관리하는 기능입니다. Maven 좌표는 특정 아티팩트의 위치를 식별하는 값 집합입니다. 기본 조정에는 다음과 같은 세 가지 값이 있습니다.
groupId:artifactId:version
Maven은 패키지 값으로 기본 조정을 늘리거나 패키징 값과 분류자 값을 모두 사용하는 경우가 있습니다. Maven 조정에는 다음 양식 중 하나가 있을 수 있습니다.
groupId:artifactId:version groupId:artifactId:packaging:version groupId:artifactId:packaging:classifier:version
값에 대한 설명은 다음과 같습니다.
- groupdId
-
아티팩트 이름의 범위를 정의합니다. 일반적으로 패키지 이름의 전체 또는 일부를 그룹 ID로 사용합니다. 예:
org.fusesource.example
. - artifactId
- 그룹 ID를 기준으로 아티팩트 이름을 정의합니다.
- version
-
아티팩트의 버전을 지정합니다. 버전 번호는 최대 4개의 부분(
n.n.n.n
.n)을 가질 수 있습니다. 여기서 버전 번호의 마지막 부분은 숫자가 아닌 문자를 포함할 수 있습니다. 예를 들어1.0-SNAPSHOT
의 마지막 부분은 영숫자 하위 문자열인0-SNAPSHOT
입니다. - 패키지
-
프로젝트를 빌드할 때 생성되는 패키지 엔터티를 정의합니다. OSGi 프로젝트의 경우 패키지는
번들
입니다. 기본값은 Cryostat입니다
. - 분류자
- 동일한 POM에서 빌드되었지만 콘텐츠가 다른 아티팩트를 구분할 수 있습니다.
아티팩트의 POM 파일의 요소는 다음과 같이 아티팩트의 그룹 ID, 아티팩트 ID, 패키징 및 버전을 정의합니다.
<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
요소를 사용할 수 있습니다.