我想更新一个来自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>
我做错了什么?
答案 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>
答案 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>