ファイルからバージョンを取得するために、Eclipse に Ant タスクがあります。
<loadfile property="version" srcfile="version.txt">
<filterchain>
<linecontainsregexp>
<regexp pattern="^#define version .(\d{1,10})\.(\d{1,10})\.(\d{1,10})\.(\d{1,10})."/>
</linecontainsregexp>
<replaceregex
pattern="^#define version .(\d{1,10})\.(\d{1,10})\.(\d{1,10})\.(\d{1,10})..*$"
replace="\1.\2.\3.\4" />
</filterchain>
</loadfile>
<echo message="Version ${version}"/>
バージョンは改行なしで表示されます。さらにコードでは、move タスクでプロパティを使用したいと考えています。
<move file="${dir}\file.exe"
tofile="${outputdir}\output-${version}-xxx.exe"
overwrite="true"
force="true" />
しかし、それはメッセージで失敗します
BUILD FAILED build.xml:26: Failed to copy path\file.exe to path\output_directory\output-1.0.0.0
-xxx.exe due to output-1.0.0.0
-xxx.exe (Název souboru či adresáře nebo jmenovka svazku je nesprávná)
(最後の行は、ファイル名が無効であることを意味します。明らかに、途中に改行が含まれています)。
どこが間違っていますか?物件自体ですか?行を追加しても
<replaceregex pattern=" " replace="" flags="s"/>
または、プロパティから改行を削除しようとしても、何も変わりませんでした。