子任务中的Phing覆盖属性



我正试图将一个复杂的基于phing的流程拆分成更小的步骤,但我在后续任务中遇到了访问属性的问题。基本上,我试图实现的是在主构建文件中定义一些属性,如${repositoryUrl}${clientName},并在后续目标中调整甚至定义新的属性(比如从存储库导出,然后删除一些文件,然后迁移数据库,然后部署到服务器)。我尝试过PhingTaskPhongImportTaskPhingCall,它们似乎都有自己的本地属性范围。所以,底线是:是否可以在不同于第一个文件的文件中(重新)定义Phing中的属性,并将其作为paramaeter(默认情况下为build.xml)传递给Phing?

所以,我自己找到了答案,我认为值得分享:为了继承以下任务中的属性,您必须将构建分为多个阶段,并有一个主文件(如build.xml),其唯一目的是启动所有任务,如下所示:

    <target name="buildAll" description="runs build steps, preserves the environment" 
    depends = 
    "prepare, 
    filter, 
    config, 
    migrate, 
    backup, 
    deploy">

除了前面的答案外,我还用Phing Targets进行了一个测试,称为

<phingcall>

设置在主默认目标中定义的属性,在次级目标中,不影响主要目标中的财产,或在另一个子目标中。

尽管改变主目标中的属性是可能的,并在其他子目标中使用该属性。

有了这种行为,很难直接达到目标-(

最新更新