属性应用程序在ANT Build.xml中循环定义
我正在运行一个build.xml,它引用名为ant.properties的属性文件,我在build.xml中声明了相同的属性文件,但是当我在Linux机器上运行build.xml时,它给出了以下错误 build.xml:15:Property应用程序是循环定义的 它可以与现有的windows VDI一起工作,但现在我们正在迁移到新的Linux服务器,因此尝试使用相同的现有构建和属性文件 property file=“ant.properties”是我在build.xml中使用的内容属性应用程序在ANT Build.xml中循环定义,ant,build.xml,Ant,Build.xml,我正在运行一个build.xml,它引用名为ant.properties的属性文件,我在build.xml中声明了相同的属性文件,但是当我在Linux机器上运行build.xml时,它给出了以下错误 build.xml:15:Property应用程序是循环定义的 它可以与现有的windows VDI一起工作,但现在我们正在迁移到新的Linux服务器,因此尝试使用相同的现有构建和属性文件 property file=“ant.properties”是我在build.xml中使用的内容 我不确定它为
我不确定它为什么会说循环定义,因为我确定没有任何东西正在运行gin循环,并且我的属性文件没有引用回my build.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>
这修复了我们的循环依赖性问题,并允许属性在项目中是可选的。这是因为属性文件中定义了类似
property.name=${property.name}
的内容。请发布属性文件的内容,以便对问题进行调试。谢谢Austin,你说得对。我不知不觉地将一个属性定义为env=${env}。删除该错误后,错误就消失了。谢谢你的快速反应,很高兴能帮上忙。