OSS Product feat. Gradle

14
OSS開発者としての嗜み ぐれ 江戸 しぐさ~ OSS Product feat. Gradle nobeans

description

Material of LT for JGGUG meetup at 2014-10-24

Transcript of OSS Product feat. Gradle

Page 1: OSS Product feat. Gradle

OSS開発者としての嗜み ~ぐれ江戸るしぐさ~

OSS Product feat. Gradlenobeans

Page 2: OSS Product feat. Gradle

OSSプロダクトの 利用者/貢献者目線からみたGradleのメリット

Page 3: OSS Product feat. Gradle

こんなOSS プロダクトは嫌だ

Page 4: OSS Product feat. Gradle

Ant/Mavenの インストールが必要

zip探してダウンロードして展開して~が面倒だったので$ apt-get install ant

してみたら、大量の依存ライブラリがドバドバとインストールされた。

ちょっとビルドしてみたかっただけなのに…orz

Page 5: OSS Product feat. Gradle

Gradle Wrapper次の2点以外に準備は不用:1. Javaがインストールされている2. ネットにつながっている

もちろんグローバル環境は汚しませんプロジェクト直下にスクリプトが、$HOME/.gradle/wrapper 配下にDLしたバイナリ等が格納される

そこで

Page 6: OSS Product feat. Gradle

どうやってビルドを実行すればよいかわからないAnt/Maven/Gradleは用意したけど、

さて、なんてコマンドを実行すればいいの?

Page 7: OSS Product feat. Gradle

デフォルトタスク 適切に設定しておけば

Gradleコマンドを無引数で実行するだけでOK

$  ./gradlew→clean, test, distタスクが実行される

そこで

//  build.gradle  defaultTasks  'clean',  'test',  'dist'

(例)

Page 8: OSS Product feat. Gradle

ソースを展開したものの次に何をすればよいかわからない

おい、ドキュメントはどこだ

Page 9: OSS Product feat. Gradle

README.mdビルドツールに何使っててもいいからとりあえず

RequiresとHow To BuildとUsageとか最小限の説明ぐらい書きましょう

そこで

Web+DBプレスvol.83で特集されたし、今ならMarkdownがおすすめ

Page 10: OSS Product feat. Gradle

 GaidenMarkdownでまとまったドキュメント書くなら使ってみるといいんじゃないかな (震え声

近々v1.0がでます、たぶん

※未承諾広告

https://github.com/kobo/gaiden

$ gvm install gaiden

Page 11: OSS Product feat. Gradle

v1.0のデフォルトテーマはこんな感じ

Gaiden Wrapperもあるよ

Page 12: OSS Product feat. Gradle

動機 == 私怨一週間ぐらい前に、あるOSSツールを試そうとして、よせばいいのにバイナリzipじゃなくて、ソースコードも読みたいからとGithubからcloneしてビ

ルドしようとしたら

READMEにはアプリ名の1行だけしかない→どうやってビルドするの?→build.xmlがあるからAntかな?

→めんどいのでapt-getでAntをインストールしてみた→ウワアァァァァ

→build.xmlを読んで適当にタスクを実行したらzipができた→あれ、またこれ展開するの?

→ダウンロードしとけば良かった…orz

…ということで、このネタを思いつきました

Page 13: OSS Product feat. Gradle

告OSSプロダクトを提供している開発者各位におかれましてはひとつご理解ご協力のほどよろしくお願いいたします。

1. Ant/MavenからGradleへ移行する2. Gradle Wrapperは標準装備で3. コレやっときゃ間違いない、という一連のタスク呼び出しをデフォルトタスクとして定義

4. ビルドの仕方だけでもREADME.mdに書く

Page 14: OSS Product feat. Gradle

受託開発でも、gradlewコマンドを無引数で実行したら即ビルドできる、というのは結構価値が高いはず