Gradle 標準ディレクトリ構造 自動作成

以前、「もくもくGroovy」で @tyama さんに「発表はコードで示せ!」と熱い言葉をいただいてから、コードを作成する事に意義があると感じております。

で、作ってみました。

作成のきっかけ

Building and Testing With Gradleのテストコードを試したりする場合や、自分なりのテストを行う場合、以下のようなディレクトリ構造に従う状態でテストをする事がほとんどです。

APP_PROJECT_ROOT
|-- build.gradle       →設定ファイル
|-- build/             →Gradleが生成する各種ファイル
`-- src
    |-- main           →プロダクト用
    |   |-- groovy/    →*.groovyファイルを格納 (*.javaを混在させることも可能)
    |   |-- java/      →*.javaファイルを格納
    |   `-- resources/ →リソースファイルを格納
    `-- test           →テスト用
        |-- groovy/    →*.groovyファイルを格納 (*.javaを混在させることも可能)
        |-- java/      →*.javaファイルを格納
        `-- resources/ →リソースファイルを格納

出典:Groovyベースのビルド管理ツールGradleを使ってみる @nobeans さん



これを単純にmkdirでいちいち作成するのが面倒だという事で、せっかくだからGradleで作成してみることにしました。


コード

gradle_mkdir.gradle



使い方

実行時に-Dproject.rootにプロジェクトのルートディレクトリを指定すれば、そのディレクトリの直下にフォルダを作成します。また、project.rootオプションがなくても中でbasedirをカレントディレクトリにしてあります。


コマンド

$ gradle -daemon -b gradle_mkdir.gradle -Dproject.root=プロジェクトのディレクトリ タスク名

使用可能タスク名と作成ディレクト
タスク名作成ディレクト依存
mainDirsrc,src/mainなし
testDirsrc/testmainDir
javaDirsrc/main/java,src/main/resourcesmainDir
groovyDirsrc/main/groovy,src/main/resourcesmainDir
javaTestDirsrc/test/java,src/test/resourcestestDir,javaDir
groovyTestDirsrc/test/groovy,src/test/resourcestestDir,groovyDir
allDir上記標準ディレクトリ構造のすべてJavaTestDir,groovyTestDir
いずれかのタスクを指定して実行します。


実行結果

$ gradle -daemon -b ../gradle_mkdir.gradle allDir
Note: the Gradle build daemon is an experimental feature.
As such, you may experience unexpected build failures. You may need to occasionally stop the daemon.
:mainDir
:groovyDir
:testDir
:groovyTestDir
:javaDir
:javaTestDir
:allDir
全部のせにします。

BUILD SUCCESSFUL

Total time: 3.408 secs



反省

プロジェクトディレクトリの位置をプログラム側に渡せる形で作れたらもっとよかったかもしれません。

20110829追記

@fumokmm さんのコメント欄のコードから、プロジェクトルートディレクトリ取得の仕組みを移植させていただきました^^ @fumokmm さんありがとうございます。
あと、github:gistを利用しました。