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=プロジェクトのディレクトリ タスク名
使用可能タスク名と作成ディレクトリ
タスク名 | 作成ディレクトリ | 依存 |
---|---|---|
mainDir | src,src/main | なし |
testDir | src/test | mainDir |
javaDir | src/main/java,src/main/resources | mainDir |
groovyDir | src/main/groovy,src/main/resources | mainDir |
javaTestDir | src/test/java,src/test/resources | testDir,javaDir |
groovyTestDir | src/test/groovy,src/test/resources | testDir,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を利用しました。