brunch

매거진 Git과 Github

You can make anything
by writing

C.S.Lewis

by anonymDev Apr 19. 2022

Maven Central에 Artifact 배포하기

Maven Central에 오픈소스 프로젝트 배포하기

유명 오픈소스 프로젝트처럼 본인이 개발한 오픈소스 프로젝트가 Maven Central을 통해 두루두루 사용된다면 오픈소스 활동이 더욱 재밌을 것이다. Sonotype에서는 Maven Central Repository와 동기화 되는 저장소를 무료로 제공하는 '오픈소스 프로젝 호스팅'을 지원하고 있다.


0. sonatype jira 가입하기


sonatype에서 운영 중인 Jira로 이동하여 회원가입을 한다.

https://issues.sonatype.org/


1. 이슈 생성하기


상단의 노란 동그라미 친 Create 버튼을 누른다.


0) Project, Issue Type 선택


Project는 아래와 같이 'Community Support - Open Source Project Repository Hosting (OSSRH)'를 선택한다.

첫 신청이라면 Issue Type은 'New Project'를 선택한다. Publishing Support는 기존에  Group Id를 받은 경우에 선택하도록 한다.

Create Issue 

1) Summary, Description 작성

'Summary'에 프로젝트의 제목을 'Description'에 프로젝트에 대한 구체적인 설명을 기술한다. 반드시 영어(English)로 작성한다.


(예시)

Summary:

New project request for hibernate 2nd cache implementation for arcus cache cloud


Description

The artifact is a implementation of hibernate 2nd cache interface(RegionTemplate)using ArcusCacheCloud (https://github.com/naver/arcus) 

There are other implementations using other cache repositories such as redis, memcached.However there is none for ArcusCache.


2) Group Id

프로젝트가 속한 그룹 ID 적어준다. 

(1) Group Id는 고유해야 하며,

(2) Group Id에 해당하는 도메인을 소유해야 한다. 

아래에서 도메인 소유 여부를 증빙하기 때문에 아무거나 적지 말자. 예를 들면 'com.goolgle'은 Google에서 google.com 도메인을 소유하고 있기 때문에 Google만 사용할 수 있다.

개인 도메인을 소유하고 있지 않는 경우 Github 프로젝트의 상위 도메인을 사용하자


(예시)

github.com/Kims-DeveloperGroup을 소유하고 있기 때문에 'com.github.kims-developergroup'을 Group Id로 적었다.

3) Project URL

프로젝트의 웹사이트 URL을 적는다. 따로 프로젝트 웹사이트가 없다면 프로젝트의 Github URL을 적는다.

(예시)

https://github.com/Kims-DeveloperGroup/hibernate-arcus


4) SCM url

소스코드의 Resository를 적는다.

(예시)

git@github.com:Kims-DeveloperGroup/hibernate-arcus.git


5) Username(s)

위에서 가입한 sonatype Jira 계정의 로그인 아이디를 적는다.


6) Already Synced to Central

마지막으로 Maven Central에 동기화 된 프로젝트인지 묻는다. 첫 업로드이기 때문에 'No'를 선택한다

하단의 Create를 누르면 아래와 같이 Jira Ticket이 생성된다.


예시 Jira Ticket 링크


2. 도메인 증빙하기(Domain Verification)

위에서 Group Id는 소유한 도메인으로 작성했다. 실제로 요청 당사자가 Group Id와 매칭 되는 도메인을 소유했는지 증빙해야 한다.


Jira Ticket이 생성되면 담당자(또는 Bot)가 도메인 소유 여부를 증빙하라고 아래와 같이 댓글로 안내한다.

아래 케이스의 경우 Github의 Organization 도메인(github.com/Kims-DeveloperGroup)을 Group Id로 정했다.

도메인 소유 증빙 예시


"Please create a public repo called https://github.com/kims-developergroup/OSSRH-64363 to verify github account ownership."


위 댓글에 따라 Organization에 OSSRH-64363 프로젝트를 생성하고 완료했다는 댓글을 달아준다.


(예시)

"to verify : https://github.com/Kims-DeveloperGroup/OSSRH-64363"


3. 첫 릴리즈를 배포한다

도메인 검증을 마치면 https://oss.sonatype.org에 Snapshot과 Release 버전 Artifact를 배포하라고 댓글을 달아준다. 배포 가이드는 댓글에 첨부된 링크 또는 오른쪽 링크에서 확인할 수 있다(링크: 배포 가이드)


snapshot과 release 버전을 배포 완료하면 https://oss.sonatype.org에서 확인할 수 있다(Jira 계정과 동일). Maven Central에 동기화되는 데는 10분 많게는 2시간 정도 걸린다고 한다.


4. 트러블슈팅

문제가 있을 경우 아래와 같이 지원해주니 마음껏 질문하고 답변을 받도록 한다. 답변을 친절하고 자세하게 해 준다.


(예시)

아래 케이스의 경우 snapshot 버전만 배포돼 담당자가 release 버전을 배포해야 Maven Central에 동기화된다고 알려주고 있다.




(추가) hibernate-arcus 프로젝트에 기여해줄 컨트리뷰터 구함

Github Link: https://github.com/Kims-DeveloperGroup/hibernate-arcus



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari