SlideShare a Scribd company logo
1 of 26
Download to read offline
クイズです。
• 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/
ご静聴ありがとうございました。

More Related Content

What's hot

Javaから見たRubyの世界
Javaから見たRubyの世界Javaから見たRubyの世界
Javaから見たRubyの世界
Takafumi Yoshida
 
私とC++ in 例外安全day
私とC++ in 例外安全day私とC++ in 例外安全day
私とC++ in 例外安全day
Tatsuya Ishikawa
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
Yuuki Namikawa
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + Nashorn
Takuya Ueda
 
シャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできることシャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできること
Narihiro Nakamura
 
LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂
masayoshi takahashi
 

What's hot (20)

Javaから見たRubyの世界
Javaから見たRubyの世界Javaから見たRubyの世界
Javaから見たRubyの世界
 
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
WebVR空間の巨大スクリーンでteratailを見れるか試してみた話
 
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと  ~teratailのDevRel担当、ゼロからの奮闘記~ @a...【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと  ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
 
今さら聞けないXSS
今さら聞けないXSS今さら聞けないXSS
今さら聞けないXSS
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法
 
スクラムをロープレに例えてみました
スクラムをロープレに例えてみましたスクラムをロープレに例えてみました
スクラムをロープレに例えてみました
 
私とC++ in 例外安全day
私とC++ in 例外安全day私とC++ in 例外安全day
私とC++ in 例外安全day
 
スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習
 
Database smells
Database smellsDatabase smells
Database smells
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
 
raect.jsを触ったお話
raect.jsを触ったお話raect.jsを触ったお話
raect.jsを触ったお話
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + Nashorn
 
エンジニアじゃなくても 3Dゲームが3時間できた話。 ~three.jsで3D糸通しをつくってみた~
エンジニアじゃなくても 3Dゲームが3時間できた話。 ~three.jsで3D糸通しをつくってみた~エンジニアじゃなくても 3Dゲームが3時間できた話。 ~three.jsで3D糸通しをつくってみた~
エンジニアじゃなくても 3Dゲームが3時間できた話。 ~three.jsで3D糸通しをつくってみた~
 
WACATE2018Summer BPP yoshitake
WACATE2018Summer BPP yoshitakeWACATE2018Summer BPP yoshitake
WACATE2018Summer BPP yoshitake
 
XP祭り関西2014 LT やってみよう!スクラ○
XP祭り関西2014 LT やってみよう!スクラ○XP祭り関西2014 LT やってみよう!スクラ○
XP祭り関西2014 LT やってみよう!スクラ○
 
シャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできることシャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできること
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
 
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
 
LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂LL Planets: JavaScript八面六臂
LL Planets: JavaScript八面六臂
 

Viewers also liked

React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigiReact Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
Yukiya Nakagawa
 

Viewers also liked (14)

今日からはじめるGPars
今日からはじめるGPars今日からはじめるGPars
今日からはじめるGPars
 
GeneXus Day 2009 - GeneXus最新技術紹介
GeneXus Day 2009 - GeneXus最新技術紹介GeneXus Day 2009 - GeneXus最新技術紹介
GeneXus Day 2009 - GeneXus最新技術紹介
 
Inquisitor -Common Lispに文字コード判定を-
Inquisitor -Common Lispに文字コード判定を-Inquisitor -Common Lispに文字コード判定を-
Inquisitor -Common Lispに文字コード判定を-
 
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common LispLisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
Lisp Meet Up #31, Clake: a GNU make-like build utility in Common Lisp
 
Webスクレイピング用の言語っぽいものを作ったよ
Webスクレイピング用の言語っぽいものを作ったよWebスクレイピング用の言語っぽいものを作ったよ
Webスクレイピング用の言語っぽいものを作ったよ
 
Lambdaによるクラウド型言語の実装
Lambdaによるクラウド型言語の実装Lambdaによるクラウド型言語の実装
Lambdaによるクラウド型言語の実装
 
Dexador Rises
Dexador RisesDexador Rises
Dexador Rises
 
Lambda × Mobileの可能性
Lambda × Mobileの可能性Lambda × Mobileの可能性
Lambda × Mobileの可能性
 
前座Lambda
前座Lambda前座Lambda
前座Lambda
 
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングAWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigiReact Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
 

More from Shinya Mochida

gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションgradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
Shinya Mochida
 
Intelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugjIntelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugj
Shinya Mochida
 

More from Shinya Mochida (20)

サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情サーバーサイド Kotlin のテストフレームワーク事情
サーバーサイド Kotlin のテストフレームワーク事情
 
IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話IntelliJ IDEA を完全にマスターする話
IntelliJ IDEA を完全にマスターする話
 
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払いクリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
クリーンアーキテクチャーを強制する方法を考えてみた(N番煎じ) #すえなみチャンス暑気払い
 
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
jjug-ccc 2019 Spring 発表資料 Collections Framework 入門 #jjug #jjug_ccc #ccc_c1
 
swift-log について
swift-log についてswift-log について
swift-log について
 
Vim 入門
Vim 入門Vim 入門
Vim 入門
 
Java プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupJava プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線Meetup
 
swift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClientswift-nio のアーキテクチャーと RxHttpClient
swift-nio のアーキテクチャーと RxHttpClient
 
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての NettyJJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
JJUG CCC 2018 Spring - I-7 (俺が)はじめての Netty
 
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjugJJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
JJUG CCC 2018 Spring LT Spring Boot アプリケーションの起動を速くする 108 の Tips #jjug_ccc #jjug
 
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみたSpring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた
 
Javaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめJavaモジュールシステム雑なまとめ
Javaモジュールシステム雑なまとめ
 
Kotlin as an AltJS
Kotlin as an AltJSKotlin as an AltJS
Kotlin as an AltJS
 
JavaのStreamで学ぶ遅延処理実装パターン
JavaのStreamで学ぶ遅延処理実装パターンJavaのStreamで学ぶ遅延処理実装パターン
JavaのStreamで学ぶ遅延処理実装パターン
 
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーションgradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
 
On stream-lazy-computation
On stream-lazy-computationOn stream-lazy-computation
On stream-lazy-computation
 
Stream脳の作り方
Stream脳の作り方Stream脳の作り方
Stream脳の作り方
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
 
ドラクエの金銭感覚
ドラクエの金銭感覚ドラクエの金銭感覚
ドラクエの金銭感覚
 
Intelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugjIntelli j vs-eclipse-by-mike-neck #jbugj
Intelli j vs-eclipse-by-mike-neck #jbugj
 

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