본문 바로가기
개발언어/SPRING

[SPRING]Maven 프로젝트 groupId, artifactId, version 이란?

by 코딩 시그널 2020. 3. 14.
반응형

회사에서는 회사가 정한 명명 규칙이 있기 때문에 메이븐 프로젝트를 생성할 때 groupId, artifactId, version 부분에 대해 특별히 생각해본 적이 없었습니다. 하지만 개인적으로 spring늘 공부하면서 직접 프로젝트를 생성 하다 보니 그 쓰임에 맞게 정확하게 사용 하고 싶었습니다. 오늘은 groupId, artifactId, version의 정의와 사용법 그리고 명명 규칙에 대해 알아 볼게요

 

 

 

groupId

groupId uniquely identifies your project across all projects. A group ID should follow Java's package name rules. This means it starts with a reversed domain name you control. For example, org.apache.maven, org.apache.commons Maven does not enforce this rule. There are many legacy projects that do not follow this convention and instead use single word group IDs. However, it will be difficult to get a new single word group ID approved for inclusion in the Maven Central repository. You can create as many subgroups as you want. A good way to determine the granularity of the groupId is to use the project structure. That is, if the current project is a multiple module project, it should append a new identifier to the parent's groupId. For example, org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting

 

- 모든 프로젝트 중에서 당신의 프로젝트를 식별하게 해주는 식별자

- groupId는 Java의 패키지 이름 규칙을 따라야 함 즉 제어하는 도메인 이름의 반대로 시작

  ex ) org.apache.maven, org.apache.commons 

- 만약에 프로젝트가 다중 모듈 프로젝트인 경우 부모의 groupId에 새 식별자를 추가해 사용

  ex ) org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting

artifactId

artifactId is the name of the jar without version. If you created it, then you can choose whatever name you want with lowercase letters and no strange symbols. If it's a third party jar, you have to take the name of the jar as it's distributed.

 

- 버전 없는 jar파일의 이름

- 특수 문자를 사용하지 않고 소문자로만 작성

- third party jar 파일인 경우면, 할당된 이름을 사용해야 함  

version

if you distribute it, then you can choose any typical version with numbers and dots (1.0, 1.1, 1.0.1, ...). Don't use dates as they are usually associated with SNAPSHOT (nightly) builds. If it's a third party artifact, you have to use their version number whatever it is, and as strange as it can look. For example,
2.0, 2.0.1, 1.3.1

 

- 배포를 하려면 숫자와 점으로 구성된 일반적인 버전(1.0,1.1,1.0.1,...)인 형태를 사용함

- SNAPSHOT (nightly) 빌드와 관련된 날짜 버전은 사용하지 않음 

- third party artifact 라면, 이상하네 보일지 라도 그들이 준 버전 넘버를 사용함


※ 정리

 

쉽게 말하면 groupId는 프로젝트의 큰 틀, artifactId는 프로젝트의 각 기능들이다. 예를 들어 지하철 관련 프로젝트를 개발한다고 한다면 groupId는 지하철 노선 전체를 뜻하고, artifactId는 1호선, 2호선 등등을 말합니다.


출처

https://maven.apache.org/guides/mini/guide-naming-conventions.html

댓글