gpt4 book ai didi

scope - 通过 调用的目标不会在调用目标中设置属性

转载 作者:行者123 更新时间:2023-12-04 11:45:43 26 4
gpt4 key购买 nike

在下面的 phing xml 中,在“skel”目标中,我检查应用程序是否已配置,如果没有,则调用配置目标,然后将配置应用于多个文件。

问题是属性 db.host没有在 phingcall 之后设置,即使它是在 propertyprompt 之后设置的。

我错过了什么?



<!-- base configuration -->
<property name="paths.config" value="config" />
<property name="paths.config.file" value="${paths.config}/environment.ini" />

<available file="${paths.config.file}" property="configured" />

<target name="configure">
<if>
<equals arg1="${configured}" arg2="true" />
<then>
<echo message="Reconfigure ..." />
</then>
<else>
<echo message="Configure ..." />
</else>
</if>

<propertyprompt propertyName="db.host" defaultValue="localhost" promptText="Mysql Server Host" />
</target>

<target name="skel">
<echo msg="Skel files..." />

<if>
<equals arg1="${configured}" arg2="${configured}" />
<then>
<echo message="Missing config file ..." />
<phingcall target="configure" />
</then>
</if>

<echo message="${db.host}" />
<copy todir="config">
<mapper type="glob" from="*.skel" to="*"/>
<filterchain>
<expandproperties />
</filterchain>

<fileset dir="config">
<include name="*.skel" />
</fileset>
</copy>
</target>

最佳答案

我认为 phingcall 将在内部创建一个新环境。配置目标完成后,此环境超出范围。

这意味着不可能像您建议的那样使用单独的配置目标。

唯一的解决方案可能是让配置目标创建一个供其他目标使用的配置文件。

关于scope - 通过 <phingcall> 调用的目标不会在调用目标中设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1763747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com