首页 > 解决方案 > 属性应用在 ANT Build.xml 中循环定义

问题描述

我正在运行一个 build.xml,它引用了名为 ant.properties 的属性文件,并且我在 build.xml 中声明了相同的内容,但是当我在我的 Linux 机器上运行 build.xml 时,它给出了以下错误 build.xml:15 : 属性应用是循环定义的。

它适用于现有的 Windows VDI,但现在我们正在迁移到新的 Linux 服务器,因此尝试了相同的现有构建和属性文件

property file="ant.properties" 是我在 build.xml 中使用的

我不确定为什么它说循环定义,因为我确定没有任何东西在运行 gin 循环,并且我的属性文件没有引用回我的 build.xml 来创建循环。

标签: antbuild.xml

解决方案


这发生在我们身上,因为我们引用了一个尚未添加到我们的属性文件中的属性。结果,ant 试图从被声明的同一个属性中提取属性。

错误声明:

<entry key="my.prop.name" value="${my.prop.name}"/>

要修复它,我们只需添加一个检查以查看该属性是否已设置,因为它是可选的。

<if>
    <isset property="my.prop.name" />
    <then>
        <propertyfile file="path/to/config.properties">
            <entry key="my.prop.name" value="${my.prop.name}"/>
        </propertyfile>
    </then>
</if>

这解决了我们的循环依赖问题,并允许该属性在项目中是可选的。


推荐阅读