私のプロジェクトのgradleビルドでdiffパッケージ生成タスクをgitコマンドライン出力から実装しています。現在私はgit diff --name-only
から変更されたファイルのリストを私に与える方法があります。私がしたいのは、各ファイルのパスに一致するディレクトリ構造を新しいディレクトリに作成することです。たとえば、文字列repo/dir/file.java
を入力すると、出力ディレクトリにはまだ作成されていないディレクトリが作成され、その中にはfile.java
とprev/repo/dir
の前にfile.java
という名前のディレクトリhead/repo/dir
が作成されます。gradle/groovyのパスからディレクトリ構造を作成します
私の現在の計画は、文字列repo/dir/file.java
をスラッシュで分割し、分割結果の最後の要素までディレクトリを作成し、そこでファイルを書き込むことです。私はgradleで思い付くことができなかったものは素晴らしく清潔です。私はそれのような文字列からディレクトリを作成するためのより良い方法があるのだろうかと思っています。
Gradleを実行するGroovyは、Java仮想マシン(JVM)で実行されます。そのため、['File'](https://docs.oracle.com/javase/7/docs/api/java/io/File.html)クラスを含め、JDK全体を使用できます。あなたは[この質問](http://stackoverflow.com/questions/3090761/how-to-create-a-new-file-together-with-missing-parent-directories)を見ることができます。なぜなら、説明されたJava方法を用いることができる。 Groovyは、 'File'クラスを含むいくつかのJDKクラスに対して、[機能強化](http://docs.groovy-lang.org/latest/html/groovy-jdk/overview-summary.html)も提供しています。 –