在Gradle tar / zip工件中排除基目录

时间:2015-11-11 23:08:35

标签: gradle tar

maven assembly plugin有一个includeBaseDirectory选项(当设置为false时)避免在tar / zip工件中有一个与工件本身同名的顶级目录。

我想用Gradle获得相同的结果,但我不知道如何。我正在使用这样的配置:

task distTar(type: Tar) {
    compression Compression.GZIP
    extension "tar.gz"
}

我没有看到the Tar task做任何我想要的选项。如何使用Gradle排除存档中的基目录?

2 个答案:

答案 0 :(得分:3)

好的,我明白了。它比我想象的要简单。要将库依赖项复制到归档根目录的lib,我使用CopySpec

task distTar(type: Tar) {
    into('lib') {
        from libsDir
        include '*.jar'
    }
}

类似的CopySpecs可用于复制,例如binconf个目录。

答案 1 :(得分:0)

通过重新配置 distribution plugin(由 application plugin 隐式应用),您可以简单地执行(在 Kotlin DSL 中):

distributions {
    main {
        contents {
            into("/")
        }
    }
}

这会影响 TarZip 格式的输出。

(免责声明:此答案大致基于 this Gradle forum post)。