2014-02-18 22 views
1

我想更新一個來自izpack配置的字符串。 當我運行ant腳本時,有一個寫配置文件的問題。如何用螞蟻編寫url

例如: 寫的網址在我的屬性文件正確的方法是URL = http://xxx.x.x.x:8080/consola

但是螞蟻寫入過程結束時,我獲得URL = HTTP \://xxx.xxx \:8080/consola

正如你所看到的「\」字符不是URL的一部分。

這裏是寫我的配置文件中的腳本的一部分:

<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> 

我做錯了什麼?

+0

這是沒有錯誤。屬性文件中冒出冒號。 Duplicate http://stackoverflow.com/questions/10699055/how-to-escape-colon-in-properties-file – vanje

回答

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

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>