ページ

2015/11/26

Gradleで表記ゆれをチェックするプラグインgradle-spelling-plugin

|

GradleからCoffeeScript、LESS、Bowerを使うプラグインgradle-web-resource-plugin
に続き、Javaプロジェクトの開発で使えるGradleプラグイン gradle-spelling-plugin を作ったので紹介。

これで何ができるかというと、ブラックリストに単語、表現を登録して、それを探していくだけ。
見つけた場合は、代わりにこれを使ってね、と警告する。
見つけた場合にビルドエラーとするかどうかは設定できる。
それだけ、ではあるのだけれど、ちょうどいいものが見つからなかったので作った。

Gradleを使い出すと、Gradleですべてチェックできるようにしたいと考えるようになる(たぶん)。
そして自動化したいと考える。
だから、grepしたりIDEで検索すればいいものだったとしても
Gradleで使える形になっていることが大事。

ライブラリが採用されてた!その2

|

YouTubeの最近の新しい動画について、今朝通知メールがきて、ふとAndroid Developersチャンネルの動画が目に留まった。
フリルのFablicさんの事例紹介だった。

マテリアルデザインを採用したらこんなに○○になった!というものだったが、マテリアルデザインのライブラリを作った自分としてはどんなものかチェックしなくては、と動画を観てみると…
おや、この動きはもしかして…!
ダウンロードしてみると、なんと使われてました!
Android-ObservableScrollViewが!
ライセンス欄にちゃんと書いてくれている。

こんな人気アプリに採用されているのは、やっぱり嬉しいですね。
Fablicさんありがとうございます。
ライブラリを使ってくれる方は
ぜひデベロッパーにフィードバックした方がいいと思います(もちろん、応援のフィードバックを…)。
特に個人で開発してると思われるプロジェクトに対しては。
メンテナンスしようというモチベーションが変わります。
(と言いつつ、諸事情で別のプロジェクトを優先していてなかなか最近できてないけど、気持ちはあります)

皆、どういう風にライブラリを採用しているのかは分からないけど、もしかすると受託開発だからオープンにできない、表立って使ってるよと言えない立場にあるのかもしれない。
それでも、もし何もフィードバックしていなければ、せめてGitHubのプロジェクトにスターを付けてくれるといいと思う。
良いと思ったから採用してくれているはずなのに、
こういう形でしか「使ってるよ!」というのが伝わらないのは残念だなと思う。

…と考えてみて、
自分も全てはそうしていなかったかもしれないなと反省。
作ったライブラリが依存しているライブラリなど、
見直してみようかなと思う。

2015/11/06

Spring Boot 1.3.0.RC1を試してみて

|

現在Spring Bootを使ったWebアプリを開発しているのだが、Spring Boot 1.3.0のリリースを心待ちにしていて、実際にMilestone/RC版を取り込んでみている。

その中でいくつかハマったこと(ドキュメントをよく読めという話だが)や、これは使ってみたいと思った機能などを書き留めておく。
これは1.3.0のリリース前のM5とRC1のことなので、そこはご注意を。

Gradleスクリプトの構造化

|

全然知らなかったのだけど、Gradleのプロジェクトでは、buildSrcというディレクトリを作ればビルド専用のクラスなどを定義できる。

例えば buildSrc/src/main/groovy/Foo.groovy というファイルを作りclass Fooとか定義すれば、build.gradleから普通に new Foo()というふうに参照できる。
classpathとか書く必要はない。

build.gradleは使っていくうちに段々と肥大化してきてしまうが、
これを使えば、複雑なtaskなどはきれいに構造化できるかもしれない。

これまで使っていたやり方としては、apply from:を使う方法。
以前本家GradleのGitHub上のプロジェクトを参照したのだが(ここでbuildSrcに気づいても良かったんだが・・・)、gradleディレクトリにいくつもgradleファイルを置いている。

そして、これを apply from: "${rootDir}/gradle/hoge.gradle"のように読み込む。

まとまった機能があればこのように切り出せばマルチプロジェクトでもそれなりにまとめられる。

しかしファイルを切り出してもそれはあくまでフラットな構造のスクリプトであり、ぐちゃぐちゃになりやすい。
クラス化したいなぁと思うことが何度もあったが、そんなときにbuildSrcを活用すると良いのかもしれない。