ANT之macrodef
阿新 • • 發佈:2020-07-31
macrodef 的意思是巨集定義, 可以理解為自定義函式。
對於大型部署,可以提高程式碼利用率。
為了方便理解,請看程式碼示例:
<macrodef name="macro-send-file"> <attribute name="host" /> <attribute name="toPath" /> <attribute name="file" /> <attribute name="userID" /> <attribute name="password" /> <sequential> <echo>@{userID}:@{password}@@@{host}:@{toPath}</echo> <scp verbose="false" trust="true" localFile="@{file}" todir="@{userID}:@{password}@@@{host}:@{toPath}" failonerror="true" /> <!-- sshexec trust="true" host="@{host}" username="@{userID}" password="@{password}" command="chmod -R u+rw,g+rwx @{toPath}/*.ear"/ --><sshexec trust="true" host="@{host}" username="@{userID}" password="@{password}" command="chown thangamm:wadmfsms @{toPath}/*.ear"/> <echo>Sent @{file} to @{host}:@{toPath}</echo> <!-- delete build dir --> <echo message="clean app project" /> <!-- after done, should clean the preparation folders but keep release folder --> <delete dir="${build.dir.app}${file.separator}${name.bin}" failonerror="false" /> <delete dir="${build.dir.app}${file.separator}${name.docs}" failonerror="false" /> <delete dir="${build.dir.app}${file.separator}${name.reports}" failonerror="false" /> <delete dir="${build.dir.app}${file.separator}${name.stage}" failonerror="false" /> <echo message="clean core project" /> <delete dir="${build.dir.core}" failonerror="false" /> <echo message="clean web project" /> <delete dir="${build.dir.web}" failonerror="false" /> </sequential> </macrodef>
<macro-send-file file="${file}" host="${autodeploy.host}" topath="${autodeploy.path}/${envName}" userid="${autodeploy.userID}" password="${autodeploy.password}" />
補充連結