我如何定义两个不同的分布' gradle中的任务?

时间:2015-05-28 19:01:07

标签: gradle

gradle中应用程序插件的distTardistZip任务的正常行为似乎是将 src / dist 的内容复制到zip和tar文件中,但我在 src / dist 中有一个子文件夹,我想从默认发行版中排除,并将其包含在新的(扩展)任务中,可能被称为distZipWithJRE。

我可以在默认任务中排除此文件夹,如下所示:

distributions.main {
    contents {
        from('build/config/main') {
            into('config')
        }

        from('../src/dist') {
            exclude('jre')
        }
    }
}

如何定义与原始(未修改)任务一样的第二个任务?

2 个答案:

答案 0 :(得分:1)

您正在寻找的是docs。您需要按原样保留当前设置,并且zipWithJRE创建和配置自定义分发:

distributions {
    zipWithJRE {
        baseName = 'zipWithJRE'
        contents {
           from { distributions.main.contents }
        }
    }
}

答案 1 :(得分:1)

使用Gradle 4.8,我不得不调整答案以使用CopySpec中的'with'

distributions {
    zipWithJRE {
        baseName = 'zipWithJRE'
        contents {
            with distributions.main.contents
        }
    }
}