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

标签 gradle groovy

我正在从 git 命令行输出在项目的 gradle 构建中实现 diff 包生成任务。目前,我有一个方法可以为我提供来自 git diff --name-only 的已更改文件列表。我想做的是在一个新目录中创建一个与每个文件的路径匹配的目录结构。例如:输入字符串 repo/dir/file.java 将在输出目录中创建(如果尚未创建),并在其中创建包含当前目录的 head/repo/dir 目录。 file.javaprev/repo/dir 以及之前的 file.java

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

最佳答案

My current plan is to split the string repo/dir/file.java on the forward slash, and create directories until the last element of the split result

您可以尝试使用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()

关于gradle - 从 gradle/groovy 中的路径创建目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356577/

相关文章:

groovy - 如何将 jsonbuilder 与集合一起使用?

grails - Groovy totalCount与大小

java - 我如何使用根目录 System.getProperty ("user.home")

java - 如何将 int 值与多个字符串值进行比较。所以它适用于数据库。值(value)转化失败

android - 关闭 React Native Android apk Release 上的调试菜单

android - 尽管更改了gradle插件,新创建的kotlin项目仍给出了gradle错误

intellij-idea - 如何在同一源集中将gradle单元测试与集成测试分开?

java - 如何将所有子目录包含为 gradle 模块?

web-services - Grails 2.4.4中使用RESTFUL Web服务的登录页面

java - Idea 在生成的源代码中报告了许多错误