1.下载最新的ant,下载地址: http://ant.apache.org/bindownload.cgi,可以在这里找到最新的下载地址,
我目前下载的是
apache-ant-1.9.0-bin.tar.gz
2.下载后解压到做任意目录,然后解压
3.要使用ant的ssh的话,就要下载jsch这个包,这个包虽然在ant lib目录下面有,但是会有错误必须要用官网jsch的地替换
下载jsch这个包要到官网: http://www.jcraft.com/jsch/index.html下载,我目前下载的是
jsch-0.1.49.jar
4.所下载到的
jsch-0.1.49.zip包copy到ant/lib目录下面,这里不要删除原来的ant-jsch.jar这个包,删除后会有错误
5.找到mac中ant的目录,可以用which ant找到使用ant命令的目录,我的机器在/usr/bin/ant,然后用ls -l查看这里连接到哪里
哪里就是ant的主目录,我的主目录在/usr/share/ant/
6.干掉ant主目录,然后把我们下载的解压后的ant复制到/usr/share/下面,就是用下载的ant替换机器上的ant
7.ok,ant可以用了,用的时候直接到有build.xml目录下用ant就可以了
下面说的是可以的mac的命令模式下可以用了,如果想在eclipse里可以用,可能须要做如下的理性,eclipse下已经有ant的插件黑夜的情况下
是使用自带的插件,这个时候打开eclipse,在eclipse的菜单项
eclipse-->preferences在左边就可以找到ant,然后点击进入runtime,在右边可以
看到anthome选项,点击后选择我们的ant目录,就是刚才的/usr/share/ant.就可以了
下面就看看ant的上传功能和执行shell脚本的能力
先看上传的功能:
建两个文件,build.properties和build.xml
build.properties里面存进去一些变量,方便build.xml进行改变
build.properties
project1.dir=/Users/alecyan/Documents/project1 project12.dir=/Users/alecyan/Documents/project2
再看build.xml这个文件
<?xml version="1.0" encoding="UTF-8"?> <project name="uploadProjectByAnt" basedir="." default="upload"> <property file="build.properties" /> <target name="upload" description="Generate the distribution"> <antcall target="uploadProject1" /> <antcall target="uploadProject2" /> </target> <target name="uploadProject1"> <scp todir="username:[email protected]:/tmp/alecyan/project1" trust="true"> <fileset dir="${project1.dir}"> <exclude name="**/bin/**"/> <exclude name="**/build/**"/> </fileset> </scp> </target> <target name="uploadProject2"> <scp todir="username:[email protected]:/tmp/alecyan/project2" trust="true"> <fileset dir="${project2.dir}"> <exclude name="**/bin/**"/> <exclude name="**/build/**"/> </fileset> </scp> </target> </project>
上面的文件中基本一看就明白了,只是有一个提醒的是要排除某个目录时,一定要用类似
**/**的形式,比如要上面的要排除build文件夹,要写成
**/build/**.
再看ant的脚本执行能力
build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="TestAnt" basedir="." default="sshexec"> <target name="sshexec"> <sshexec host="192.168.1.222" username="username" password="password" command="cd /tmp/;mkdir dir;ls -l;" trust="true"/> </target> </project>
若个命令可以用;号隔开