是否可以对任务进行参数化?例如,我想创建一个 zip 任务,该任务将被其他两个任务使用,但这些任务需要传递一些附加信息信息这个 zip 任务(例如 zip 名称)。
这就是我希望它工作的方式。如果不可能,我该怎么做?或者如果我可以,有更好的解决方案吗?
task zipFile(type: Zip) {
from files('dist/zip')
destinationDir = file('dist')
archiveName = myArchiveName // myArchiveName should be passed as property
}
task zipTwoFiles << {
// create first archive
zipFile.execute() // how to pass property to this task?
// create second archive
zipFile.execute() // how to pass property to this task?
}
我想这样做是因为这是我将项目从 ant 迁移到 gradle 的第一步。在蚂蚁中它看起来像这样:
<target name="zipFile">
<zip destfile="dist/${myArchiveName}" basedir="dist/zip" />
</target>
<target name="zipFile1">
<antcall target="zipFile">
<param name="myArchiveName" value="myarchive.zip" />
</antcall>
<antcall target="zipFile">
<param name="myArchiveName" value="myarchive2.zip" />
</antcall>
</target>