从 gradle/groovy 中的路径创建目录结构

MA *_*zen 3 groovy gradle

我正在从 git 命令行输出在我的项目的 gradle 构建中实现一个差异包生成任务。目前我有一个方法可以给我一个从git diff --name-only. 我想做的是在与每个文件的路径匹配的新目录中创建一个目录结构。例如:repo/dir/file.java如果尚未创建,输入字符串将在输出目录中创建,并在其中创建head/repo/dir具有当前file.javaprev/repo/dir前一个file.java.

我目前的计划是repo/dir/file.java在正斜杠上拆分字符串,并创建目录直到拆分结果的最后一个元素,然后在那里写入文件。但我在 gradle 中没有想到的东西是好的或干净的。我想知道是否有更好的方法从这样的字符串创建目录。

Arm*_*and 8

我目前的计划是repo/dir/file.java在正斜杠上拆分字符串,并创建目录直到拆分结果的最后一个元素

您可以尝试使用File.mkdirs()

File newDirectoryStructureParent = new File('some/path/to/parent/dir')

def s = 'repo/dir/file.java'
def newContainer = new File(s, newDirectoryStructureParent).getParent()
newContainer.mkdirs()
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,需要进行以下更改:`def newContainer = new File(new File(s, newDirectoryStructureParent).getParent())` (2认同)