5

ファイルからバージョンを取得するために、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="&#10;" replace="" flags="s"/>    

または、プロパティから改行を削除しようとしても、何も変わりませんでした。

4

1 に答える 1