知っておくべき用語
	Sonatype
	Maven Central Repository を管理している会社
	Sonatype OSSRH (OSS Repository Hosting)
	Sonatype 社の製品である Nexus を使用したオープンソースのレポジトリホスティングサービスで Maven Central Repository への登録はここから行う
	Sonatype JIRA
	Sonatype OSSRH へのプロジェクト登録権限を申請する Web サイト
手順
- GitHub にソースコードを Push
- Sonatype JIRA でアカウント登録
- Sonatype JIRA でプロジェクトの登録申請
- pom.xml を Maven Central Repository の要件にあわせて修正
- GPG の鍵を用意
- settings.xml に Sonatype JIRA のアカウント設定
- Sonatype OSSRH にデプロイ
- Sonatype OSSRH でリリース
- やったね、おめでとう!
1. GitHub にソースコードを Push
まずは公開したいプロジェクトのソースコードを GitHub に Push しましょう。
2. Sonatype JIRA でアカウント登録
	Maven Central Repository に直接ソースコードをアップロードすることはできません。まずは Sonatype OSSRH にソースコードをアップする必要があるのですが、そのためには Sonatype JIRA で申請が必要です。
	
	下記の URL からアカウントを登録しましょう。
	https://issues.sonatype.org/secure/Signup!default.jspa
	
3. Sonatype JIRA でプロジェクトの登録申請
アカウント登録が完了したら、ページ上部の「Create」のボタンからプロジェクトの登録申請を行ないます。
	
英語で記載する必要がありますが、ちょっとなのでがんばる。
| Project: | Community Support - Open Source Project Repository Hosting を選択 | 
| Issue Type: | New Project を選択 | 
| Summary: | 公開するソースコードのプロジェクト名を書く | 
| Description: | 公開するソースコードの説明を書く | 
| Group Id: | pom.xml に指定した <groupId> を書く | 
| Project URL: | GitHub のURLを書く | 
| SCM url: | GitHub の Clone URL を書く | 
| Username(s): | 他の人と指定した Group Id に対して権限を共有したい場合はここに Sonatype JIRA のアカウント名を書く | 
| Already Synced to Central: | No を選択 | 
	記入内容に問題なければ、2, 3日で登録完了のコメントがきます。
	
	
4. pom.xml を Maven Central Repository の要件にあわせて修正
	Maven Central Repository にプロジェクトを登録するには、pom.xml の書き方にお決まりがあるので、下記の URL を参考に必要事項を設定する。
	
	http://central.sonatype.org/pages/requirements.html (公式ドキュメント)
ざっくりいえば、こんな感じ。
- <groupId> <artifactId> <version> をきちんと書く
 ※ここで指定する groupId は Sonatype JIRA で申請した際の groupId と同じでなければいけません
- <name> <description> をきちんと書く
- <license> にソースコードのライセンスをきちんと書く
- <developers> に開発者の情報をきちんと書く
- <scm> に GitHub のアクセス情報をきちんと書く
5. GPG の鍵を用意
	公開するファイルは GPG で署名してやる必要あります。GPG の公開鍵、秘密鍵のペアを作成して、公開鍵を keyserver にアップしましょう。
	
	http://central.sonatype.org/pages/working-with-pgp-signatures.html (公式ドキュメント)
	自分の場合は Windows なので、Gpg4win を使いました。
	
	http://www.gpg4win.org/
	
File > New Certificate... から、Create a personal OpenPGP key pair を選択して公開鍵と秘密鍵のペアを作ります。
	鍵のペアを作ったら、keyserver に公開鍵を登録します。
	
	が、その前に Sonatype OSSRH が参照する keyserver の情報を事前に登録しておかなければいけません。
	Settings > Configure Kleopatra... > Directory Services に keyserver の情報を登録しましょう。
	
	
| Scheme: | hkp | 
| Server Name: | keyserver.ubuntu.com | 
| Server Port: | 11371 | 
| OpenPGP: | チェックを ON にする | 
	keyserver の登録ができたら、公開鍵を登録します。
	
	作成した証明書を右クリックして、Export Certificates to Server... を実行すれば OK。
	
6. settings.xml に Sonatype JIRA のアカウント設定
	Sonatype OSSRH にデプロイできるように、settings.xml にアカウント情報を設定します。
	
	settings.xml はユーザ毎の Maven の設定ファイルで、~/.m2/settings.xml に配置します。
<span class="redactor-invisible-space"><settings>
    <servers>
        <server>
            <id>ossrh</id>
            <username>your-jira-id</username>
            <password>your-jira-pwd</password>
        </server>
    </servers><span class="redactor-invisible-space">
</settings></span></span>
your-jira-id と your-jira-pwd には Sonatype JIRA 登録時の ID とパスワードを設定します。
7. Sonatype OSSRH にデプロイ
	ようやく、デプロイの準備が整いました。下記のコマンドで Sonatype OSSRH にデプロイしましょう。
	
mvn clean deploy
8. Sonatype OSSRH でリリース
Sonatype OSSRH にデプロイしてしばらく待てば自動で Maven Central Repository に同期されるようですが、せっかちな人は https://oss.sonatype.org/ にログインして、リリース作業を行ないましょう。
ログイン後、Build Promotion > Staging Repositories を選択、リストから自分のレポジトリを選択して、Close, Release の順でボタンをおせば、リリース作業完了です。
	リリース作業がうまくいくと、下記の件名でメールが2通きます。
	
	Nexus: Promotion Completed
	
	Nexus: Staging Complete
1時間ほどで Maven Central Repository に同期されます。
	
9. やったね、おめでとう!
	ちょっと手順が多くて面倒ですが、
	http://search.maven.org/ で自分のプロジェクトが見つかるとうれしいですね!!
	
