No Programming, No Life

プログラミング関連の話題や雑記

GroovyでJavaのpackage-info.javaを一括生成するスクリプト(二番煎じ)

はじめに

id:tbpgさんのRuby記事を見て、Groovyで解こうかなと思っていたら、id:irofさんに先を越された!
けどめげずに私もGroovyで書いてみたら、大体一緒になった。

実行結果

$ groovy generatePackageInfo.groovy 
出力完了。出力結果
./src/jp/co/a/a1/package-info.java
./src/jp/co/a/a2/package-info.java
./src/jp/co/a/a3/package-info.java
./src/jp/co/a/package-info.java
./src/jp/co/b/b1/package-info.java
./src/jp/co/b/b2/package-info.java
./src/jp/co/b/package-info.java
./src/jp/co/package-info.java
./src/jp/package-info.java
$ cat ./src/jp/co/a/a1/package-info.java 
/**
 * jp.co.a.a1パッケージ。
 *
 * <pre>
 * // TODO パッケージ内容の詳細を記述してください
 * </pre>
 * 
 */
package jp.co.a.a1;
$ 

おわりに

お題:package-info.javaの一括生成

プログラミングお題の一覧はこちら
※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。

説明

(このお題の元ネタはこちら)

JavaDocのパッケージ内容を記述するpackage-info.javaを生成するプログラムを作成せよ。

要件は以下
・Javaソースファイルを配置する起点となるパスを指定する
・指定した起点のパスの配下にあるすべてのパッケージにpackage-info.javaを作成する
・package-info.javaの中身は以下
/**
 * "パッケージのパス"パッケージ。
 *
 * <pre>
 * // TODO パッケージ内容の詳細を記述してください
 * </pre>
 * 
 */
package パッケージのパス;
例 以下のようなディレクトリ構成を持っていた場合に、"./src" を起点として実行した場合、
./src
./src/jp
./src/jp/co
./src/jp/co/a
./src/jp/co/a/a1
./src/jp/co/a/a2
./src/jp/co/a/a3
以下のような結果が得られる。
./src/jp/package-info.java
./src/jp/co/package-info.java
./src/jp/co/a/package-info.java
./src/jp/co/a/a1/package-info.java
./src/jp/co/a/a2/package-info.java
./src/jp/co/a/a3/package-info.java
./src/jp/co/a/a2/package-info.javaの内容
/**
 * jp.co.a.a2パッケージ。
 *
 * <pre>
 * // TODO パッケージ内容の詳細を記述してください
 * </pre>
 * 
 */
package jp.co.a.a2;