tomcat - 可以在 Ant 中延迟或阻止属性评估吗?
问题描述
我有一个第三方 Tomcat webapp,它配置了一个ant
在部署前处理的 .properties 文件。
一个属性DB.cache.dir
定义了一些临时文件的创建位置。我希望这个属性从字面上评估${java.io.tmpdir}
为. 目的是在运行 webapp 时将使用运行它的 Tomcat 的 java.io.tmpdir 值,而不是它配置时的值ant
。
我试图在\
没有运气的情况下使用逃生,但在网上找不到答案。
请指教。
# How to prevent evaluation for this property?
DB.cache.dir=${java.io.tmpdir}
解决方案
您需要使用另一个美元符号来转义美元符号,例如:
DB.cache.dir=$${java.io.tmpdir}
来自Ant 文档中的属性、属性扩展、$$ 扩展:
在其默认配置中,Ant 会将文本 $$ 扩展为单个 $ 并抑制紧随其后的文本的正常属性扩展机制,即 $${key} 扩展为 ${key} 而不是 value,即使属性名为键已定义并具有值值。
推荐阅读
- dart - Flutter 创建无限 ListView.builder 上下滚动
- php - 无法遍历 Laravel POST 中的对象数组
- javascript - 为什么我可以在 Typescript 中将 `Function` 分配给`Interface`?
- c# - 当存在具有实体框架的现有父级时,插入子级的“正确”模式是什么?
- python - Numpy 基于索引值创建数组(Python)
- python - 为什么 Python 3 的 glob() 不返回迭代器?
- go - 解析嵌套的 JSON 字符串
- kubernetes - Kubernetes 中的 Gluster 集群:节点重启后 Glusterd 不活动(死)。如何调试?
- android - 附近连接:无法将有效负载发送到多个设备
- java - 在构建 Android 应用程序之前,将 jar 从其他目录拉到 libs 文件夹