我有一個大型項目,它的構建自動化是由ant完成的。我需要一些想法或解決方案來更改所有文件中的一些常用變量。例如,公司名稱,產品名稱或年份包含在許多文件中:幫助文件(html),許可和配置文件(txt,xml),源代碼(java-> class)等等。是否有簡單的方法來爲這些設置一個變量,並使所有的文件改變一個快照?也歡迎不同的工具。使用不同文件格式的變量進行構建自動化
總是有選項來添加一些代碼來打開文件,找到位置並更改字符串,但這似乎不是一個優雅的解決方案。
謝謝。
我有一個大型項目,它的構建自動化是由ant完成的。我需要一些想法或解決方案來更改所有文件中的一些常用變量。例如,公司名稱,產品名稱或年份包含在許多文件中:幫助文件(html),許可和配置文件(txt,xml),源代碼(java-> class)等等。是否有簡單的方法來爲這些設置一個變量,並使所有的文件改變一個快照?也歡迎不同的工具。使用不同文件格式的變量進行構建自動化
總是有選項來添加一些代碼來打開文件,找到位置並更改字符串,但這似乎不是一個優雅的解決方案。
謝謝。
我喜歡下面的ANT解決方案:
使用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源代替令牌。
螞蟻Copy和Move任務都支持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..