読者です 読者をやめる 読者になる 読者になる

Gradleのチートシート

Gradle Sphinx

以前Twitterでつぶやいたのですが、Gradleのチートシートが欲しかったので、自分で作ってみました。

ダウンロード

内容はもっと洗練させていきたいですが、ひとまず以下に公開します。

https://github.com/tq-jappy/Gradle-CheatSheet/raw/master/gradle-cheatsheet.pdf

チートの項目は自分のプロジェクトで利用するものに特化しているところはありますが、ブログ、Twitter、あるいはGitHubへのPull Requestなどでフィードバックをいただけると嬉しいです。

きっかけ

Gradleのユーザガイドは日本語版もあるし、かつ非常に丁寧に書かれているので、欲しい情報は大体ユーザガイドを参照すれば分かります。ただ、自分のプロジェクトで使っていくうちに、ユーザガイドだけだと以下の点で不便さを感じるようになってきました。

  • ユーザガイドには利用可能なプロパティやタスクはすべて網羅されているが故に、よく使うものが霞んでしまう。
  • 関連の深い内容を扱うページが複数にまたがっており、行ったり来たりするのが手間になる(例えば「第7章 Javaクイックスタート」と「第23章 Javaプラグイン」。あるいは「第8章 依存関係管理の基本」と「第48章 依存関係の管理」など。)
  • ビルドスクリプトで書きたい処理のバリデーションはそんなに多くないので、細かい説明よりもサンプルを簡単に見たい。

そういった不満を解消したいと思ったのが、きっかけです。

謝辞

作成にあたり、色んなサイトの情報を参考にさせていただきましたが、treeappsさんの「javaのビルドをgradleで行う:実践編6:高速に実用的な実行可能jarを生成する」がとても役に立ちました。ありがとうございます。

おまけ: Sphinxチートシートを作る

GitやSubversionチートシートは前から使わせてもらったのですが、自分でチートシートを作るのは今回が初でした。少し前にTwitterチートシートを作るツール(サービス?)が紹介されていた気がするのですが失念してしまったので、作成にあたり方法を少し調査。

結果として、Sphinxを使うことにしました。最近、Sphinxでマニュアルを作ったので、使い方を覚えたばっかりだったってのが採用理由の一つです。

PDFを作るためには、LaTeX経由ではなく、rst2pdf拡張を使用しています。rst2pdfでチートシート風なPDFを作るためのスタイルは https://github.com/ralsina/rst-cheatsheet を参考にしました。

Sphinxを使うと、ファイルをきちんと管理できるし、PDF自体も思った以上にそれっぽく作れたので、出来にはそれなりに満足しています。また、今後別のチートシートを作ろうと思った時も、source以下だけ入れ替えればそのまま使えるので便利かなと。一つ残念なのは、スタイルの細かい部分のカスタマイズのやり方が分からなかった(情報が少ない…)ので、ビルドスクリプトのハイライトがわかりにくかったり、一部はみ出したりしている点でしょうか。

Sphinxチートシートを作る場合、conf.pyでは表紙や目次を出力しないように設定します(下記)。

extensions += ['sphinx.ext.autodoc', 'rst2pdf.pdfbuilder']

pdf_documents = [
    ('index', 'foo', u'Foo Documentation', u'Author Name'),
    ]
pdf_stylesheets = ['sphinx', 'kerning', 'a4', 'ja']
pdf_font_path = ['C:\Windows\Fonts']
pdf_language = "ja"
pdf_use_coverpage = False
pdf_use_toc = False

その後、ja.jsonの中でチートシート風の見た目になるように、スタイルをカスタマイズしていきます。

おまけ2: GradleでGradleチートシートを作る

こっちはほとんど意味のないネタです。

せっかくのGradleのチートシートなので、チートシートの作成自体もGradleタスクとして実行できるようにしてみました。

やっていることは、プロジェクトの中に、build.gradleを作って、"make html"や"make pdf"を実行するタスクを追加しただけです。