轉自:http://blog.sina.com.cn/s/blog_443058cb01000bk7.html
相信大部分開發人員都對ant有相當程度的了解,為什么呢?簡而言之,ant是個好工具,真的不錯。
本人從ant學習過程中遇到一些問題,后來在解決的過程中,對ant有了更深一步的了解。所以決定把學習過程中一些不太清楚的地方總結一下,和大家交流溝通一下,對於我一個新手來說肯定有許多認識上的不足,希望大家多給指導。
<target name="buildLog">
<exec executable="svn" output="${build.logs}/buildLog.xml">
<arg line="log ../. --xml -r HEAD"/>
</exec>
<echo message="SVN log created successfully!" level="info"/>
</target>
<exec executable="svn" output="${build.logs}/buildLog.xml">
<arg line="log ../. --xml -r HEAD"/>
</exec>
<echo message="SVN log created successfully!" level="info"/>
</target>
這是我現在從事項目的一段ant腳本里面有一些不太明白的地方:
(1)exec 有什么作用?
exec可以調用系統命令,比如:
<target name="test">
<exec executable="cmd.exe">
<arg line="/c dir"/>
</exec>
</target>
上邊的這段代碼所起到的作用是打開命令輸入框,/c轉到c盤根目錄,執行dir命令。
(line 空格分隔的命令行變量列表。)
(2)
<exec executable="svn" output="${build.logs}/buildLog.xml">
<arg line="log ../. --xml -r HEAD"/>
</exec>
這個的作用就是在svn工作空間下面執行下面的命令:
<arg line="log ../. --xml -r HEAD"/>
</exec>
這個的作用就是在svn工作空間下面執行下面的命令:
svn log ../. --xml -r HEAD,把生成的結果保存到buildLog.xml文件中。
<exec executable="${base.dir}/email.bat" >
</exec>
<exec executable="cmd" dir="D:\" failonerror="true">
<arg line="/c del 1.bat" />
</exec>
failonerror:表示當出現錯誤時自動停止
arg例子
<arg value="-l -a"/>
是一個含有空格的單個的命令行變量。
<arg line="-l -a"/>
是兩個空格分隔的命令行變量。
<arg path="/dir;/dir2:\dir3"/>
是一個命令行變量,其值在DOS系統上為\dir;\dir2;\dir3;在Unix系統上為/dir:/dir2:/dir3 。
轉自:http://www.cnblogs.com/hoojo/archive/2013/06/14/java_ant_project_target_task_run.html
參考:http://ant.apache.org/manual/Tasks/exec.html