ComponentDependenciesDiagram

[Maven] Central Repository deploy

이 포스트는 메이븐 중앙저장소에 AXU4J를 배포(deploy)하면서 겪은 삽질(4일이나…)에 대한 기록입니다.

1번부터 그냥 시키는대로 하시면 됩니다. 자세한 내용은 제일 아래 참고사이트를 참고하세요.

1. pom.xml

아래는 AXU4J의 pom.xml입니다.

파란색 글씨는 필수사항입니다. 해당 내용을 반드시 작성해야 하며 plugin 같은 경우는 그냥 그대로 복사합니다.

 

2. 메이븐 중앙저장소 가입하기

https://issues.sonatype.org/secure/Signup!default.jspa 여기에 가서 회원가입을 합니다.

여기서 Username은 아이디입니다.

이번에는 만든 계정으로 로그인을 하고 티켓을 하나 만드세요.

티켓을 만들고(프로젝트생성) 기다리면 해당 티켓이 RESOLVED 상태가 되면서 저장소가 생성됩니다.(메일로 알려줍니다.)

도움말에 따르면 약 2일 정도가 소요되며 그동안 deploy하지 말라고 설명하고 있습니다.

저같은 경우에는 운이 좋아서인지 하루도 안걸렸습니다.

3. GPG 설정하기

GPG란 파일의 변조를 방지하기위해 사용하는 인증 방법 중에 하나입니다. 메이븐에서는 GPG Sign을 반드시 사용해야만 중앙 저장소에 올릴 수 있도록 허용하고 있습니다.

이 글에서는 http://www.gpg4win.org에서 제공하는 Kleopatra를 사용하도록 하겠습니다. 일단 해당 사이트에서 gpg4win를 다운 받아서 설치합니다. 설치 후 해당 프로그램을 실행하고 다음 절차대로 진행합니다.

  1. File > New Certificate…
  2. Create a personal OpenPGP key pair
  3. Name, email을 입력하고 Next, Create Key를 클릭한 후 passphrase를 입력합니다.(passphrase를 반드시 기억하거나 기록해 놓으셔야 합니다.)
  4. 이제 생성된 Key를 선택하고 Export Certificates를 클릭한 후 키 정보를 *.asc 파일로 저장합니다.
  5. 저장된 *.asc 파일을 텍스트 편집기로 열어서 해당 내용을 복사합니다.
  6. http://pgp.mit.edu/ 사이트에 복사한 내용을 넣고 submit 하면 됩니다.

이제 GPG는 준비가 완료 되었습니다.

4. settings.xml

settings.xml의 경로는 windows의 경우 ‘C:Users%USER_NAME%.m2settings.xml’에 있습니다.

settings.xml에는 2, 3번에서 생성한 메이븐 중앙저장소 아이디/패스워드, GPG passphrase가 필요합니다.

<settings xmlns=”http://maven.apache.org/SETTINGS/1.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd”>

<localRepository/>

<interactiveMode/>

<usePluginRegistry/>

<offline/>

<pluginGroups/>

<mirrors/>

<proxies/>

<activeProfiles/>

<servers>

<server>

<id>ossrh</id>

<username>%USERNAME%</username>

<password>%PASSWORD%</password>

</server>

</servers>

<profiles>

<profile>

<id>sign</id>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

<properties>

<gpg.passphrase>%passphrase%</gpg.passphrase>

</properties>

</profile>

</profiles>

</settings>

 

5. deploy

이제 필요한 준비는 대강 끝났습니다. 아래처럼 deploy goal을 사용하면 메이븐 중앙 저장소에 프로젝트가 배포됩니다.

deploy 과정에서 프로그램의 주석이나 기타 요구사항을 준수하지 못한 경우 MojoFailureException이 발생하게 되는데 대부분 메시지를 잘 읽어보면 쉽게 해결할 수 있습니다.

mvn clean deploy

저는 메이븐 중앙 저장소에 배포하는데 4일이나 걸렸지만 여러분은 금방 할 수 있을거라 확신합니다. 만약 진행중에 모르거나 문제가 있는 경우 https://github.com/axisj-com/axu4j/issues 여기에서 질문 하시면 제가 할수 있는데 까지 답변해 드리겠습니다.

그럼 즐거운 프로그래밍 하세요.


참고사이트

http://zerobrain.tistory.com/53 (제일 도움이 많이 되었습니다.)

http://central.sonatype.org/pages/apache-maven.html

http://central.sonatype.org/pages/ossrh-guide.html

http://central.sonatype.org/pages/working-with-pgp-signatures.html


  • axisj

    같은 경험 하셔야 하는 분에게는 구원의 빛줄기 이겠네요 ^^

Site Footer

Sliding Sidebar