クイズです。
• Javaが走ってないものを当てよ
• 火星探査車(Spirit)
• Android
• Blue-ray装置
クイズです。
• Javaが走ってないものを当てよ
• 火星探査車(Spirit)
• Android
• Blue-ray装置
理由
• Write Once, Run Anywhere でないから
• ある端末で走るのに、他の端末で走らない
とかよくありますね…
• Java標準のAPIが使えないから
• JSR173(StAX)とかJSONP(JSR353)とか
• いや、そもそもJVMじゃないし…
•30億のデバイスで走る
Javaとかおおそれたタ
イトルですが…
•30億のデバイスで走る
Javaを支えるJavaエコシ
ステムの話をします。
期待していいこと
• Maven Central Repoのポリシーを覚える
期待していいこと
期待できないこと
• Mavenの使い方
• Groovy/Gradleの話だとか
• IntelliJ IDEAの話とか
• 面白いオチとか
期待できないこと
• もちださん(@mike_neck)
• Groovy、IntelliJ IDEA
• フリーのプログラマーですが、諸事情
により云々かんぬん…
• ブログ : mike-neck.github.io
もっかい自己紹介
ドラクエやってます
• 名前:ひめ(IG506-769)
• チーム:ぶんちんバス
ターズ
• メイン職業:スーパー
スター(lv.70)
• 強ボスは僧侶で参戦
ライブラリーを知り、ライ
ブラリーを使う
• 「標準ライブラリーを使用すること
で、それを書いた専門家の知識と、
それをあなたよりも前に使用した
人々の経験を利用することになりま
す」
 (『Effective Java』項目47より)
プロジェクトでのライブラ
リーの管理どうしますか?
• 各自でライブラリーを落としてきてパ
スに加える
• VCSに入れておく
• Ivy/Maven/Gradleで管理する
•ライブラリーの管理は
Ivy/Maven/Gradleを使い
ましょう
Maven Centralの悩み
• 我々(Sonatype OSS repository)がApacheや
Codehausなどの大きな組織のレポジトリー
との同期を始めた時、これらの組織がレポ
ジトリーの品質に注意を払うだろうと楽観
視していた。しかし、実際のところ、怪し
いライブラリーが散見された。
(Improving Maven Central and Supporting
Maven Ecosystem - http://blog.sonatype.com/
people/2010/01/nexus-oss-ecosystem/)
• Maven Centralにないartifactがアップロードされ
る
• メタデータ/javadoc.jar/source.jarがない
• GPG signatureがない
• POMに開発者情報がない
• artifactの依存情報とPOMの内容が異なる
具体的にあった問題
Central Sync Requirement - 1
Central Sync Requirement - 1
• <modelVersion> - 4.0.0
• <groupId> - ちゃんとしたドメインを使うこと
• <artifactId> - ライブラリー・モジュールの名前
• <version> - SNAPSHOTはダメ
• <packaging> - jarまたはwar
• <name> - プロジェクトの名前
• <description> - プロジェクトの概要
• <url> - プロジェクトのURL
• <licenses> - ライセンス形態を記述
• <scm><url> - SCMツールのURL (githubとかbitbucketとか)
• <scm><connection> - SCMのプロトコルを含めたURL
• <developers> - 開発者の情報
Central Sync Requirement - 2
Central Sync Requirement - 2
• -sources.jarを含めること
• -javadoc.jarを含めること
• artifact.jar、javadoc.jar、sources.jar、pomの
GPG署名を付けること
• maven centralにない依存ライブラリーをpomに
記述しないこと
• Seasarプロジェクトのライブラリーとか…
Central Sync Requirement
覚えた?
詳しく知りたい方は
http://samuraism.jp/diary/2012/05/03/1336047480000.html
http://mike-neck.github.io/blog/2013/06/19/publish-maven-
artifact-with-sign-files-1/
ご静聴ありがとうございました。

30億のデバイスで走るjavaを支えるjavaエコシステム