2011-02-28 48 views
-1

我想使用ant在xml文件中更改版本號。 我試過螞蟻的替換任務,但它不工作。使用螞蟻在xml中替換文本

我看起來像這樣的xml文件。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org<br>/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>xyz</groupId> 
    <artifactId>proj</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
+4

「我試過螞蟻的替換任務,但它不工作。」什麼不起作用?你有錯誤嗎?或者更換了錯誤的文字?要麼...?請更具體一些。 – 2011-02-28 06:29:00

+0

順便說一句:你的xml缺少一些結束標籤'',''。 – 2011-02-28 06:31:09

+1

你的'ant' xml文件實際上是一個** maven ** pom.xml - 你似乎在混淆你的教程。 Ant和Maven完全是兩種不同的構建系統。 – JoseK 2011-02-28 08:57:49

回答

4

您可以使用複印任務。 http://ant.apache.org/manual/Tasks/copy.html

abc.template.xml:

<abc version="@[email protected]"> 
    <item name="xxxxx"/> 
</abc> 

ant_script:

<copy file="abc.template.xml" 
tofile="abc.xml" 
filtering="yes" overwrite="yes"> 
<filterset> 
    <filter token="VERSION" value="1.0"/> 
</filterset> 
</copy> 
+0

同意我在生成Maven POM文件時使用這種方法 – 2011-02-28 19:09:39

0

我不知道,但它似乎你的問題是由錯誤的文件或錯誤的語法造成的。

下面我有我的pom.xml內容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>@VERSION</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>my-app</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>my-app</name> 
    <url>http://maven.apache.org</url> 
    </project> 

見下面我的build.xml

<project name="Test" default="replaceContent" basedir="."> 
<target name="replaceContent"> 
     <replace file="src/pom.xml" token="@VERSION" value="5.0.0.0"/> 
    </target> 
    </project> 

現在如果我運行$螞蟻replaceContent,它取代我的令牌@VERSION什麼我在構建文件中指定爲「值」。因此,執行成功後,pom.xml中的<modelVersion>值將更改爲5.0.0.0

當您發佈任何問題時,還會提及錯誤的詳細信息。