我在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}"/>
Run Code Online (Sandbox Code Playgroud)
版本显示没有换行符.在代码中我想使用移动任务的属性:
<move file="${dir}\file.exe"
tofile="${outputdir}\output-${version}-xxx.exe"
overwrite="true"
force="true" />
Run Code Online (Sandbox Code Playgroud)
但它失败了
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á)
Run Code Online (Sandbox Code Playgroud)
(最后一行表示文件名无效,显然它在中间包含换行符).
我哪里错了?这是房产本身吗?甚至添加线
<replaceregex pattern=" " replace="" flags="s"/>
Run Code Online (Sandbox Code Playgroud)
或其他尝试从属性中删除换行没有改变任何东西.
你需要剥离换行符,例如:
<filterchain>
<linecontainsregexp ... />
<replaceregex ... />
<striplinebreaks />
</filterchain>
Run Code Online (Sandbox Code Playgroud)
如果您修改<echo>为:
<echo message="Version -${version}-"/>
Run Code Online (Sandbox Code Playgroud)
你会清楚地看到这种影响.
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |