没关系,为什么我要这样做,我只是在尝试模仿旧系统。

我希望使用Gradle(v2.10)将tar文件打包到tar文件中。

这是我的build.gradle脚本:

task tar1(type: Tar) {
    extension 'tar'
    archiveName 'tar1.tar'
    dirMode 0755
    fileMode 0644
    into ('/') {
        from ('src/files')
    }
}

task tar2(type: Tar, dependsOn: 'tar1') {

    extension 'tar'
    archiveName 'tar2.tar'
    dirMode 0755
    fileMode 0644
    into ('/') {
        from (project.distsDir) {
            include{'tar1.tar'}
        }
    }
}

我的构建命令是gradle clean tar2
由于某些原因,我无法理解Tar任务是将长度为0的tar2.tar文件添加到tar2.tar中:
~/example$ tar -tvf build/distributions/tar2.tar
-rw-r--r-- 0/0               0 2016-02-03 11:40 tar2.tar
-rw-r--r-- 0/0           10240 2016-02-03 11:40 tar1.tar

我只希望tar1.tar存在于tar2.tar中。

我在做什么错或者是Gradle Tar任务中的错误?

最佳答案

试试这个:

替换为:

    from (project.distsDir) {
        include{'tar1.tar'}
    }

与:
from tar1.outputs

您还可以删除dependsOn:'tar1'作为旁注,除非您以某种方式清除了tar1,否则tar1仍将存在。

关于linux - Gradle将tar文件添加到tar文件中无法产生正确的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35182864/

10-15 13:02