Ant属性可以解析其他属性吗?

2024-02-15

Ant 属性可以通过属性文件设置,从属性文件解析其他属性吗?

例如,我可以这样做:

<property name="prop1" value="in_test_xml1" />
<property name="prop2" value="${prop1}" />

并且 prop2 变为“in_test_xml1”。那挺好的。

但在这种情况下,当使用输入属性文件时:

prop1=sample_prop
prop2=${prop1}

prop2 未设置为“sample_prop”

因此,只有当进行解析的属性位于 ant 文件本身中时,从其他属性解析属性似乎才有效。

这是预期的还是我错过了什么?


Ant 确实支持文件内属性扩展,请参阅手册中的属性文件部分了解Property http://ant.apache.org/manual/Tasks/property.html task.

以下示例显示了正在解析的属性:

  • 在单个属性文件中
  • 从一个属性文件到另一个属性文件
  • 在构建文件中

第一个属性文件:

$ cat props1.properties
prop1=world
prop2=hello ${prop1}

第二个属性文件:

$ cat props2.properties
prop3=goodbye ${prop1}

构建文件:

<project default="test">
  <property file="props1.properties"/>
  <property file="props2.properties"/>
  <property name="prop4" value="${prop3}, good luck"/>
  <target name="test">
    <echo message="prop1 = ${prop1}"/>
    <echo message="prop2 = ${prop2}"/>
    <echo message="prop3 = ${prop3}"/>
    <echo message="prop4 = ${prop4}"/>
  </target>
</project>

Output:

$ ant
Buildfile: build.xml

test:
     [echo] prop1 = world
     [echo] prop2 = hello world
     [echo] prop3 = goodbye world
     [echo] prop4 = goodbye world, good luck

BUILD SUCCESSFUL
Total time: 0 seconds

是否有另一种财产解决方案不适合您?

Edit

根据您的评论,我现在了解到您正在使用-propertyfile命令行选项指定 Ant 加载的属性文件(而不是像我上面那样在构建文件本身中指定文件)。

我对此进行了快速测试,发现 Ant 1.7.1 没有对使用该命令行选项加载的文件进行文件内属性扩展。但 Ant 1.8.2 可以。

这是蚂蚁错误 18732 https://issues.apache.org/bugzilla/show_bug.cgi?id=18732。您应该能够通过更新 Ant 版本来解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ant属性可以解析其他属性吗? 的相关文章

随机推荐

  • “未处理的 JS 异常:类型错误”

    我刚刚重置了 iPhone 模拟器的设置 通过点击 重置内容和设置 现在我遇到了以前从未遇到过的问题 这里是 我坚持认为该项目在重置之前完美运行 但我需要清除应用程序的本地存储 当人们更改位置时 我确实看到了一些帖子index ios js
  • gvisScatterChart 动态定义系列

    我正在动态创建几个gvisScatterCharts 我想定义每条线的颜色 我可以使用系列和颜色属性来完成 没有什么比订单或固定数字更能让我预先定义颜色的了 所以我想创建一个与我的颜色平行的属性数组 并将其放在series myColors
  • 如何启用格式化的 Xdebug 错误和跟踪

    我不确定我何时或更改了什么 但突然 xdebug 不再呈现其格式化的堆栈跟踪 相反 它在没有任何 HTML 的情况下呈现 stacktrtace 这是一个例子 http berkes openphoto me photo l view 而我
  • 模型继承和属性默认值

    我有一个带有类别属性和几个子类的主类 我想为每个子类设置默认类别 例如 class BaseAd models Model CATEGORY CHOICES 1 Zeta 2 Sigma 3 Omega category models In
  • 无法在准备好的 INSERT 语句中使用 python mysql.connector 中的 None (NULL) 值

    当尝试使用准备好的光标并插入时NULL重视mysql 连接器报错 mysql Error 1210 HY000 Incorrect arguments to mysqld stmt execute 这是准确显示这一点的代码 from fut
  • 如何在mysql的列之间进行搜索

    我有两列存储值 数字 如何选择给定数字在两列中的值之间的位置 例子 id col1 col2 1 20 50 2 200 400 3 500 650 如果我的值为 25 我如何选择值 25 位于它们之间的记录 在本例中为第 1 行 sele
  • C 或 C++ 中 >>= 的含义是什么?

    的含义是什么 gt gt C 或 C 中的符号 它有什么特别的名字吗 我有这个for循环一些 CUDA 代码 如下所示 for int offset blockDim x offset gt 0 offset gt gt 1 Some co
  • Numpy 将布尔数组的字符串表示形式转换为布尔数组

    是否有一种原生的 numpy 方法来转换布尔值的字符串表示数组 例如 True False True False 对于我可以用于屏蔽 索引的实际布尔数组 我可以做一个 for 循环来遍历并重建数组 但对于大型数组来说 这很慢 您应该能够进行
  • 验证插件未验证所有字段

    我正在使用 jQuery 验证插件进行表单验证 它只是检查第一个字段 如果第一个字段验证为真 则正在提交表单 它不验证其余字段 我正在使用引导程序3 0
  • 输入语句块时会创建新的堆栈帧吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在 C 语言中 大括号充当堆栈框架吗 https stackoverflow com questions 2759371 in c do braces act as a stack frame int
  • Selenium:如何点击javascript按钮

    我必须编写一些用于自动测试的脚本 以检查使用 flex amf 技术构建的 Web 应用程序的加载时间 测试将包括打开 IE 浏览器 浏览多个选项卡 并测量从单击最后一个选项卡加载页面内容到关闭浏览器的时间 我使用 Selenium Web
  • RavenDB 索引错误

    我刚刚开始使用 Raven 我创建的索引始终无法索引任何内容 我在 Raven 服务器上发现了很多如下所示的错误 Index HomeBlurb IncludeTotalCosts Error Cannot implicitly conve
  • VB.NET 尝试将通用 Invoke 方法修改为通用 BeginInvoke 方法,出现意外问题

    VB NET 2010 NET 4 Hello 我一直在使用一种非常灵活的通用调用方法来从后台线程更新 UI 我忘记了从哪里复制它 从 C 将其转换为 VB NET 但它是 Public Sub InvokeControl Of T As
  • Reflection.Emit 和泛型类型

    我在用Reflection Emit我想创建一个与 C 中定义的以下类型等效的类型 class A public Tuple
  • 如何在 Mercurial 中添加远程存储库?

    我通过以下方式使用 Git 存储库 我在不同的生产机器上有主存储库和几个遥控器 我将生产代码推送到远程并重新启动服务以使更改生效 我即将从 Git 切换到 Mercurial 我想提前知道如何实现类似的目标 您将条目添加到 paths 本地
  • 优雅地从 has_many 中选择属性:通过 Rails 中的连接模型

    我想知道从 has many 中的连接模型选择属性的最简单 最优雅的方法是什么 通过关联 假设我们有具有以下 Item 类的 Items Catalogs 和 CatalogItems class Item lt ActiveRecord
  • 抽象工厂模式是否有“更多”的现实世界示例? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在研究OPP的设计模式 只是为了给您一些背景知识 这不是我第一次遇到这些模式 我已经编程了一段时
  • 在 Rails 中动态添加字段,无需嵌套属性

    我正处于创建应用程序的早期阶段 只是放置一些基本代码 这是当前的代码 应用程序 视图 卡片 front html erb routes controller cards do get front
  • 增加 AWS Elastic Beanstalk 上 Nginx conf 中的 client_max_body_size

    我遇到了 413请求实体太大 将大于 10MB 的文件发布到在 AWS Elastic Beanstalk 上运行的 API 时出现错误 我已经做了相当多的研究 并且相信我需要提高客户端最大主体尺寸对于 Nginx 但是我似乎找不到任何有关
  • Ant属性可以解析其他属性吗?

    Ant 属性可以通过属性文件设置 从属性文件解析其他属性吗 例如 我可以这样做