2.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를 기준으로 아티팩트 이름을 정의합니다.
버전
아티팩트의 버전을 지정합니다. 버전 번호는 최대 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 요소를 사용할 수 있습니다.