【问题标题】:Edit Configuration file using Ant xmltask使用 Ant xmltask 编辑配置文件
【发布时间】:2023-03-11 23:10:02
【问题描述】:
<configuration>
  <userSettings>
        <IntegrationTests.Resources.IntegrationTests>
            <setting name="UserAppPath" serializeAs="String">
                <value>C:\Program Files (x86)\App\</value>
            </setting>
            <setting name="LogFilePath" serializeAs="String">
                <value>C:\logfiles\</value>
            </setting>
        </IntegrationTests.Resources.IntegrationTests>
  </userSettings>
</configuration>

我有上面的 xml 文件,我希望我的构建作业在作业运行期间动态编辑这些路径值...所以如果设置名称是 UserAppPath,那么如果设置是 LogFilePath,则使用正确的路径更新相同的值标签然后根据我选择的从站编辑日志文件路径......同样,我可能有 n 个设置,但可能有兴趣只更改其中的几个。我已经尝试过替换,插入询问 ant xmltask。但没有解决我的问题....任何帮助将不胜感激

【问题讨论】:

  • 使用 xmltask 的脚本是什么样的?

标签: ant xmltask


【解决方案1】:

您可以使用copyfilterset 来做到这一点。

将变量放入属性文件中,例如

user.app.path=C:\\Program Files (x86)\\App\\
logfile.path=C:\\logfiles\\

创建配置文件的模板版本,例如

<configuration>
  <userSettings>
        <IntegrationTests.Resources.IntegrationTests>
            <setting name="UserAppPath" serializeAs="String">
                <value>@user.app.path@</value>
            </setting>
            <setting name="LogFilePath" serializeAs="String">
                <value>@logfile.path@</value>
            </setting>
        </IntegrationTests.Resources.IntegrationTests>
  </userSettings>
</configuration>

在您的构建文件中,创建配置文件的一个版本,用 filterset 替换模板版本中的占位符:

<project name="test" default="test">
  <target name="test">
    <copy file="config_template.xml" tofile="config.xml">
      <filterset begintoken="@" endtoken="@">
        <filtersfile file="config.properties" />
      </filterset>
    </copy>
  </target>
</project>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2012-04-17
    相关资源
    最近更新 更多