ant - 属性应用在 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 来创建循环。
解决方案
这发生在我们身上,因为我们引用了一个尚未添加到我们的属性文件中的属性。结果,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>
这解决了我们的循环依赖问题,并允许该属性在项目中是可选的。
推荐阅读
- algorithm - 查找 XOR 和为零的数组数量
- google-bigquery - 特殊组成员时的 BigQuery 数据集访问
- mongodb - mongo db 没有在 centos 7 上启动
- python - 是否有计算项目产品价值的循环?
- ios - Vapor 3.1.10 Xcode-11.3.1 编译问题
- javascript - 禁用除 IE 之外的所有浏览器的 HTML5 AppCache
- c - 如何从一个数组中找到每个分支的百分比?在 C 中(已回答)
- zk - 如何在 zk-calendar 中将任何日/周/月设置为默认视图?
- python - 迁移错误“OperationalError at /admin/accounts/userstripe/ no such table:accounts_userstripe”
- g++ - cygwin中g ++的宏定义问题