2012-06-06 53 views
0

我有一個大型項目,它的構建自動化是由ant完成的。我需要一些想法或解決方案來更改所有文件中的一些常用變量。例如,公司名稱,產品名稱或年份包含在許多文件中:幫助文件(html),許可和配置文件(txt,xml),源代碼(java-> class)等等。是否有簡單的方法來爲這些設置一個變量,並使所有的文件改變一個快照?也歡迎不同的工具。使用不同文件格式的變量進行構建自動化

總是有選項來添加一些代碼來打開文件,找到位置並更改字符串,但這似乎不是一個優雅的解決方案。

謝謝。

回答

1

我喜歡下面的ANT解決方案:

http://www.richardnichols.net/2009/08/automatically-updating-your-source-file-headers-with-ants-replaceregexp/

使用replaceregexp任務來查找和修復Java文件丟失許可證標題:

<target name="replace_headers"> 
    <loadfile property="javaheader" srcFile="lib/standardheader.txt"/> 
    <replaceregexp match="(/\*.*\*/.*)??^package " flags="sm" 
     replace="${javaheader}${line.separator}package "> 
     <fileset dir="src"> 
      <include name="**/*.java"/> 
     </fileset> 
    </replaceregexp> 
</target> 

簡單並且不需要在Java源代替令牌。

2

螞蟻CopyMove任務都支持filterset元素。使用此功能,您可以將全局替換的標記應用於文件集中的文件。

簡單的例子:

<target name="test"> 
    <mkdir dir="build"/> 
    <copy todir="build"> 
     <fileset dir="src"> 
      <include name="*.txt"/> 
     </fileset> 
     <filterset> 
      <filter token="COMPANY_NAME" value="Acme Inc."/> 
     </filterset> 
    </copy> 
</target> 

輸出:

$ cat src/foo.txt 
I work for @[email protected] 
$ 
$ cat build/foo.txt 
I work for Acme Inc.. 
相關問題