GroupId, ArtifactId, Version 에 대해 알아봅시다.
maven central은 자바 라이브러리를 위한 저장소입니다.
프로젝트의 pom.xml, build.gradle의 dependencies에 작성한 라이브러리들을 maven central에서 받아옵니다.
1) GroupId, 2) ArtifactId, 3) Version 이 3개의 값은 자바 라이브러리를 maven central에 등록하기 위해 필요한 값 입니다.
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
maven 저장소에서 lombok 패키지를 검색한 결과입니다.
프로젝트를 식별하는 유일한 값입니다.
일반적으로 회사 도메인을 거꾸로 만듭니다.
사실, 메이븐은 이 네이밍 룰을 강제하지 않습니다. 많은 레거시 프로젝트들이 네이밍 룰을 따르지 않고 한 단어의 이름을 가집니다. 다만, 메이븐 저장소에서 승인되는 한 단어의 GroupId를 찾는것은 매우 어렵습니다.
com.amazonaws, com.kakao.mango, com.naver.maps.open
버전이 없는 jar 파일의 이름으로 ArtifactId는 프로젝트의 이름으로 사용됩니다.
aritifact는 소프트웨어의 산출물을 의미합니다. 자바의 경우 빌드를 완료하면 .jar 파일이 만들어지고 이를 아티팩트라고 부릅니다. 이러한 이유로 ArtifactId는 .jar 파일의 이름이됩니다.
aritifact의 원래 의미인 인공물 때문에 어려울 수 있는데 다음과 같이 생각하면 될것 같습니다.
aritifact == 프로젝트
ArtifactId == 프로젝트의 이름
소문자와 하이픈을 이용해서 만들어줍니다.
lombok, amazon-kinesis-client
새로운 프로젝트의 버전입니다.
기본적으로 자동으로 채워집니다.
배포 하기 위해서 1) 숫자, 2) 점으로 이루어진 일반적인 버전을 사용합니다. (1.0, 1.1..)
SNAPSHOT (nightly) 빌드와 연관된 날짜는 사용하지 않습니다.
서드 파티 artifact인 경우, 이상하게 보일지라도 주어진 버전 번호를 사용합니다.
2.0, 2.0.1, 1.3.1