2015-04-08 4 views
4

Есть ли способ добавить пустые каталоги (например, «журналы») при создании дистрибутива с плагином распределения градиентов?Gradle distribution - создать пустой каталог

Я видел this JIRA, описывая то же самое. Он по-прежнему открыт https://issues.gradle.org/browse/GRADLE-1671

Удивительно, если есть какие-либо обходные пути, которые я могу использовать. Я не совсем понимаю обходные пути, описанные в джире.

спасибо.

ответ

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} 
} 
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 
        } 
       } 
       // ... 
      } 
      // ... 
     } 
    } 
} 
Смежные вопросы