Gradleからマイナス文字を含んだAntタスクを呼び出す

約一年振りって、、、それは昨年もやったよ(大汗)ということで、今年もやってきました、G* Advent Calendar 2013。6日目は私です。

Antを使っていた方がGradleに移行する際に何が便利か、というとAntのタスクをそのまま呼び出せることだと思います。
昔作ってそのまま使っていた為に、Gradleのプラグインにするにもソースが見つからないとか、開発者がもう居ないとか(汗)の場合でも安心ですね。

さて、AntのタスクはXMLで定義しますので、タスク名にマイナス文字が含まれたものを定義できてしまいます。このようなAntタスクをGradleから呼び出すには、どうしたら良いでしょうか。
例えば、"foo-bar"タスクを呼び出す際には、Antなら次の様に書きます。

これをGradleから呼び出す為に、次の様に書くとエラーになります。

ant.foo-bar(user: 'Toby55@新潟')

Gradleのスクリプト(Groovy)では、マイナス文字は演算子として扱われますので、そのまま書くことができません。

では、どうやって呼び出すかというと、文字列をクォートで囲んで次の様に書きます。

ant.'foo-bar'(user: 'Toby55@新潟')

まぁ気付けば簡単な話なのですが、ハマりやすい所ではあります。

次はid:nobusueさん*1です。

*1:何と昨年と同じ!

AntからGradleに移行する際に注意したい、ちょっとした事

約一年振りってどうよ(汗)
ということで、今年もやってきました、G* Advent Calendar 2012。5日目は私です。

さて、G*でビルドシステムと言ったら、Gradleですよね。私は最近、仕事で使い始めています。GroovyでDSLが書けるのは、本当に気持ち良いです。今まで仕事のビルドはAntでやっていたのですが、今後はGradleへ移行しようかと思っています。
Gradleの大きな特徴として、「Antのタスクやビルドをそのまま利用可能」というのがあります。Antのbuild.xmlをインポートするには、同じディレクトリに置いたbuild.gradleに

ant.importBuild "build.xml"

と1行書くだけです。これだけでAntで一生懸命作ったタスクをGradleから利用することができるので、まずはこれで簡単にAntからGradleへ移行できます。

実は、今回仕事のビルドでは最初上手く行かなかった部分がありました。それは、「インポート時にAntのbasedir属性は無視される」ということです。
例えば、複数のプロジェクトで共通に使用するライブラリ等を別のディレクトリに置くような場合があります。その際にbasedir属性を

の様に書いて、親ディレクトリをルートの様に扱ってAntのタスクを構築したとします。このファイルをGradleからインポートすると、、、まぁ動作しません。
今回は「Antのタスクをbasedir属性無しでも動くように書き換える」という力技で解決しました*1が、basedir属性が指定されている場合には気をつけましょう。

次はid:nobusueさんです。

*1:現在はbuild.xmlをインポートせずにカスタムAntタスクのみ利用する様に書き換えたので、無意味になってますがw

2011年も終わり。

今年を振り返ります。

  • 火山が噴火する中、宮崎まで行った
  • 震災後で慌ただしい中、初めて四国に行った
  • JGGUGのサポートスタッフになった
  • 初めて勉強会で富山に行き、しかもLTしてきた
  • 初めて盛岡まで行った
  • 合宿で箱根に行った

えっと、、出かけてばかりですなぁ(笑い)

Grettyで割り勘計算機 #gadvent2011

G* Advent Calendarも23日目になりました。今日は私の担当です。

皆様、Grettyって聞いたことありますか?
GrettyはWebサーバ&クライアント作成用のシンプルなWebフレームワークです。Groovy++で書かれていますが、GroovyやJavaなどでも使用できます。
実は昔、d:id:uehajさんがGretty..軽量でノンブロッキングなイベント駆動Webサーバ - uehaj's blogで簡単に紹介していますが、それから開発が進んでいるようですので、今回は簡単なサンプルを作って紹介したいと思います。

このGretty、困ったことに情報が少ないです。上で紹介した以外の記事としては、

ぐらいしかありません。あとはソースを見るぐらいでしょうか。

で、今回のサンプルですが、丁度クリスマス&忘年会シーズンですし、私といえば割り算ということで(笑い)割り勘計算機を作ってみました。

この2つのファイルを同一フォルダに置いて、そのフォルダで

groovy GrettySample.groovy
でサーバが起動します。その後ブラウザで
http://localhost:8080/div/割られる数/割る数
の様に指定すると、割られる数÷割る数の結果を表示します。
おまけで、
http://localhost:8080/何か
と指定すると、
Hello, 何か!
と表示します。

Grettyを使ってWebサーバを作る際の特徴としては、

  • Webリクエスト・レスポンスをDSLっぽく書ける
  • URLの一部分をパラメータとして複数取得できる
  • 自前のテンプレートエンジンを持っているのでロジックと表示を分けられる

でしょうか。

普段Webアプリを作っていない私でも、思ったより簡単に作ることができました。情報が少ないのが問題といえば問題ですが、何かの機会に利用してみるのはいかがでしょうか。

    • -

2011/12/24追記:
URLが一部間違ってましたので、修正しました。

困ったときの、猫頼み。

ネタに困ったときは猫の写真を出しておけば良い、と聞いたのでw
こんな記事がありました。

ついに猫でも総選挙、ですか。