gpt4 book ai didi

java - 使用 Ant 构建在 xml 中替换值/版本/日期的占位符

转载 作者:行者123 更新时间:2023-11-30 05:51:45 25 4
gpt4 key购买 nike

我有超过 30 个 odx-d 文件(odx-d 只是具有不同扩展名的 xml 文件)。所有文件都有共同的标签:

<DOC-REVISION>
<REVISION-LABEL>01.02.03-04</REVISION-LABEL>
<STATE>RELEASE</STATE>
<DATE>2018-11-14T16:26:00+01:00</DATE>
</DOC-REVISION>

在每个版本中,我都需要更改所有文件中的这些值。

注意:使用 Java 进行操作是不可能的,因为构建时只是对所有这些文件进行 zip 压缩,而不是使用 Java 来操作这些文件。

请建议一种方法来创建一个文件(您建议的任何文件类型),我可以在其中为所有这些文件中的标签提供这些值和占位符。

谢谢!

最佳答案

这可以通过以下步骤实现:

  1. 用占位符替换常见标签值,例如@revision@ , @state@ , @date@

  2. 将每个文件复制到临时位置

  3. 使用 <replace file="${dest.file}"> 在复制的文件中执行替换嵌套任务 <replacefilter .../>元素

  4. 将转换后的文件压缩到临时位置

例如,使用这样的模板文件“template.xml”:

<DOC-REVISION>
<REVISION-LABEL>@revision@</REVISION-LABEL>
<STATE>@state@</STATE>
<DATE>@date@</DATE>
</DOC-REVISION>

您可以使用此 ant 目标设置实际值(跳过 zip 部分):

  <target name="test">
<property name="my.revision" value="01.02.03-04"/>
<property name="my.state" value="RELEASE"/>
<tstamp>
<format property="my.date" pattern="yyyy-MM-dd hh:mm z"/>
</tstamp>
<property name="template.file" value="./template.xml"/>
<property name="dest.file" value="./doc.odx"/>
<delete file="${dest.file}" quiet="true"/>
<copy toFile="${dest.file}" file="${template.file}"/>
<replace file="${dest.file}">
<replacefilter token="@revision@" value="${my.revision}"/>
<replacefilter token="@state@" value="${my.state}"/>
<replacefilter token="@date@" value="${my.date}"/>
</replace>
</target>

关于java - 使用 Ant 构建在 xml 中替换值/版本/日期的占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53774369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com