Как использовать ant-компресс в Gradle (разархивировать файл xz tar)? - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу распаковать файл в формате .tar.xz. tarTree() Gradle не поддерживает этот формат, поэтому мне нужно распаковать .xz в .tar, тогда я смогу использовать его.

В соответствии с документами , я должен быть в состоянии сделать что-то вроде этого:

    ant.untar(src: myTarFile, compression: "xz", dest: extractDir)

Однако я получаю сообщение об ошибке:

Caused by: : xz is not a legal value for this attribute
    at org.apache.tools.ant.types.EnumeratedAttribute.setValue(EnumeratedAttribute.java:94)

Этот SO ответ говорит об использовании Apache Ant Compress antlib внутри Maven. Как я могу достичь аналогичного результата, используя Gradle?

1 Ответ

1 голос
/ 24 февраля 2020

Преобразование ответа Maven SO по вашей ссылке будет выглядеть примерно так:

configurations {
   antCompress
} 
dependencies {
   antCompress 'org.apache.ant:ant-compress:1.4'
}
task untar {
   ext {
      xzFile = file('path/to/file.xz')
      outDir = "$buildDir/untar"
   } 
   inputs.file xzFile
   outputs.dir outDir
   doLast {
      ant.taskdef(
          resource:"org/apache/ant/compress/antlib.xml" 
          classpath: configurations.antCompress.asPath
      ) 
      ant.unxz(src:xzFile.absolutePath, dest:"$buildDir/unxz.tar" )
      copy {
         from tarTree("$buildDir/unxz.tar") 
         into outDir
      }   
   } 
} 

См. https://docs.gradle.org/current/userguide/ant.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...