Gradle分发 - 创建一个空目录

时间:2015-04-08 12:32:54

标签: gradle

使用gradle分发插件创建分发时,有没有办法添加空目录(例如“日志”)?

我看到了this JIRA,描述了完全相同的事情。它仍处于打开状态https://issues.gradle.org/browse/GRADLE-1671

我想知道是否有任何可以使用的解决方法。我不太明白jira中描述的变通方法。

谢谢。

2 个答案:

答案 0 :(得分:9)

所以我设法通过遵循上述JIRA中的建议来创建虚拟空目录,然后将其复制到分发位置。

它丑陋但有效。我确信它可以更有效地编写。这是来自发行版/主要/内容的复制块:

into('') {
    //create an empty 'logs' directory in distribution root
    def logDirBase = new File('/tmp/app-dummy-dir')
    logDirBase.mkdirs()
    def logDir = new File(logDirBase.absolutePath + '/logs')
    logDir.mkdirs()

    from {logDirBase}
}

答案 1 :(得分:0)

根据Logato自己的回答,我提出了以下代码,它更优雅,并且还正确关闭文件指针(使用with上下文):

distributions {
    main {
        baseName = 'app'
        contents {
            into('') {
                File.createTempDir().with {
                    def tmpLog = new File(absolutePath, 'logs')
                    println tmpLog.absolutePath
                    tmpLog.mkdirs()
                    from (absolutePath) {
                        includeEmptyDirs = true
                    }
                }
                // ...
            }
            // ...
        }
    }
}