【发布时间】:2017-09-10 01:28:06
【问题描述】:
我们使用 ant 构建(一个巨大的)项目,并且(由于遗留原因)我们将属性嵌套在属性文件中的深度。
(例如在 build.xml 中)
<ant dir="${object.build.dir}" target="deploy" />
(在一些属性文件中:)
object.build.dir=${base.dir}
(在其他一些属性文件中(有时甚至相同)):
base.dir=${env}/some/dir
然后,因为 ant 不再那么新了,我们现在要迁移到 maven,这将是一场噩梦......
问题是:您如何读取将属性嵌套在属性中的结果,有时可以达到 5 层...
(作为测试)
过滤器/top_level.properties:
env=test
filters/test/mid_level.properties:
specific=spec
filters/top_level.properties 也可以读取(对于另一个环境):
env=prod
还有过滤器/prod/mid_level.properties:
specific=spock
问题归结为:
如何读取/使用在另一个属性文件中定义路径的属性文件中定义的“特定”属性?) (而且到处都是这种嵌套?)
此外,这不涉及“资源”(这些也涉及但不是主要问题,资源是应用程序使用的属性,我谈论的属性是仅在构建时用于指定的属性构建是如何发生的)
我找到了答案,但如果有更好的答案,我很乐意选择它作为最佳答案...
S.
【问题讨论】:
-
您的属性看起来像是针对不同环境的设置,在 Ant 和 Maven 中都不是使用属性的好主意......也许你可以看看这里:github.com/khmarbaise/multienv-maven-plugin...Furthermore I假设您每次都为每个属性构建,这意味着 dev、prod 等。这在 Maven 中不起作用......只需构建一次并在一次运行中产生所有需要的输出......
-
嘿,谢谢,我一定会看看的,S。
标签: java maven ant properties