我使用
<scp todir="${user.id}:${user.pwd}@${host.name}:${destination}" verbose="true" port="${host.port}" trust="true" failonerror="true">
<fileset dir="${source.dir}">
<include name="**" />
<exclude name=".project"/>
<exclude name=".svn"/>
<exclude name="temp"/>
<exclude name="jsch_build.xml"/>
</fileset>
</scp>
然后我收到了错误响应
:/bin/sh^M:错误的解释器:没有这样的文件或目录。
我知道这是由代码格式引起的。一个解决方案是设置 ff=unix,但我需要一一处理这些脚本。并且没有在 unix 机器上安装 dos2unix。
有人可以帮助我解决这个问题吗?谢谢!
有一个 ANT fixclrlf 任务,可用于在将文件复制到远程位置之前修复文件。
也可以将其用作筛选器链的一部分。
<copy todir="${staging.dir}">
<fileset dir="${source.dir}">
<include name="**" />
<exclude name=".project"/>
<exclude name=".svn"/>
<exclude name="temp"/>
<exclude name="jsch_build.xml"/>
</fileset>
<filterchain>
<fixcrlf eol="lf" eof="remove"/>
</filterchain>
</copy>
<scp todir="${user.id}:${user.pwd}@${host.name}:${destination}" verbose="true" port="${host.port}" trust="true" failonerror="true">
<fileset dir="${staging.dir}"/>
</scp>