如何用蚂蚁写url

时间:2014-02-18 20:36:36

标签: java ant

我想更新一个来自izpack配置的字符串url。 当我运行ant脚本时,我在编写配置文件时遇到了问题。

例如: 在我的属性文件中写入url的正确方法是url = http://xxx.x.x.x:8080/consola

但是在写入过程结束时我获得了url = http \://xxx.x.x.x \:8080 / consola

正如您所见,“\”字符不是网址的一部分。

以下是编写配置文件的脚本部分:

<target name="writeConfig">
    <echo message="${isAppUpdate}" />
    <var name="updateFlagCremona" value="${isAppUpdate}" />

    <propertyfile file="../config/config.properties" />

    <property name="main.url" value="${mainUrl}" />
    <property name="bckup.url" value="${bckupUrl}" />

    <propertyfile file="../config/config.properties">
        <entry key="url" operation="=" value="@mainUrl" />
        <entry key="urlBackup" operation="=" value="@bckupUrl" />
    </propertyfile>

    <replace file="../config/config.properties" token="@mainUrl" value="${main.url}" />
    <replace file="../config/config.properties" token="@bckupUrl" value="${bckup.url}" />

    <if>
        <equals arg1="${updateFlagCremona}" arg2="yes" />

        <then>

            <echo message="${mainUrl}" />
            <echo message="${bckupUrl}" />
            <echo message="${consoleId}" />

            <propertyfile file="../config/config.properties">
                <entry key="url" value="${mainUrl}" />
                <entry key="urlBackup" value="${bckupUrl}" />
                <entry key="console.id" value="${consoleId}" />
            </propertyfile>
        </then>
    </if>
</target>

我做错了什么?

2 个答案:

答案 0 :(得分:1)

解决方法只是从变量中删除额外的\,这是一个适合您的工作示例:

<?xml version="1.0"?>
   <project name="Hello World Project" default="info">
    <property name="url" value="http\://xxx.x.x.x\:8080/consola"/>
   <target name="info">
      <echo>before : ${url}</echo>


    <property name="before" value="This is a value"/>
    <script language="javascript">
        var before = project.getProperty("url");
        project.setProperty("after", before.replace("\\", ""));
    </script>
    <echo>after=${after}</echo>

   </target>
</project>

enter image description here

答案 1 :(得分:0)

最后我发现了错误!

我正在逃避冒号,但顺序错误。

我只是以这种方式改变我的剧本:

<target name="writeConfig">
    <echo message="${isAppUpdate}" />
    <var name="updateFlag" value="${isAppUpdate}" />

    <if>
        <equals arg1="${updateFlag}" arg2="yes" />

        <then>
            <echo message="${mainUrl}" />
            <echo message="${bckupUrl}" />

            <propertyfile file="../config/config.properties" >
                <entry key="url" value="${mainUrl}" />
                <entry key="urlBackup" value="${bckupUrl}" />

            </propertyfile>
        </then>
    </if>

    <property name="main.url" value="${mainUrl}" />
    <property name="bckup.url" value="${bckupUrl}" />

    <propertyfile file="../config/config.properties">
        <entry key="url" operation="=" value="@mainUrl" />
        <entry key="urlBackup" operation="=" value="@bckupUrl" />
    </propertyfile>

    <replace file="../config/config.properties" token="@mainUrl" value="${main.url}" />
    <replace file="../config/config.properties" token="@bckupUrl" value="${bckup.url}" />


</target>