我想更新一个来自 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>
我做错了什么?
最佳答案
解决方法是从变量中删除多余的\这是一个适合您的示例:
<?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>
关于java - ant如何写url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21864749/