1. 首先下载ant,网上搜一下即可,我下的是apache-ant-1.9.4
2. 下载SSH支持包
能够通过windows直接将文件复制到Linux上是使用Linux的SSH协议完成的,因此首先需要下载SSH的支持jar包:jsch-0.1.51.jar
将该jar包放在apache-ant-1.9.4/lib中
3. 在Eclipse中将Ant导入
Window-->Preferences-->Ant-->Runtime 单击Ant Home Entities,点击Add Folder,选择Ant的解压目录
注:若之后出现 Cause: Could not load a dependent class com/jcraft/jsch/Logger 异常,需要在此处单击Ant Home Entities后点击Add External JARs...然后选择jsch-0.1.51.jar
4. 编写build.xml
<?xml version="1.0" encoding="UTF-8" ?> <project name="MySSH" default="build" basedir="."> <description>用ANT将MySSH发布成WAR</description> <!-- 定义发布需要用到的属性 --> <!-- WEB容器需要用到的属性 --> <property name="tomcat.home" value="E:/eclipse/apache-tomcat-7.0.35" /> <property name="webapps.home" value="E:/eclipse/apache-tomcat-7.0.35/webapps" /> <property name="app.home" value="." /> <property name="app.name" value="MySSH" /> <property name="src.home" value="${app.home}/src" /> <property name="web.home" value="${app.home}/WebRoot" /> <property name="lib.home" value="${web.home}/WEB-INF/lib" /> <property name="classes.home" value="${web.home}/WEB-INF/classes" /> <!-- 定义构建WEB应用的良好的文件目录 属性 --> <property name="build.home" value="${app.home}/build" /> <property name="build.classes" value="${build.home}/WEB-INF/classes" /> <!-- 定义发布目录 最后工程将WAR文件COPY在该目录下,发布的时候只要将此文件拷贝到${webapps.home}指定的目录下 --> <property name="deploy.home" value="${app.home}/deploy" /> <!-- 应用需要用到的类库支持文件 包括工程本身lib目录下的所有.jar和web容器中lib目录下的所有.jar文件 --> <path id="compile.classpath"> <pathelement location="${classes.home}" /> <fileset dir="${lib.home}"> <include name="*.jar" /> </fileset> <fileset dir="${tomcat.home}/lib"> <include name="*.jar" /> </fileset> </path> <!-- 删除历史发布痕迹 --> <target name="clean_all"> <delete dir="${build.home}" /> <delete dir="${classes.home}" /> <delete dir="${deploy.home}" /> <delete dir="${webapps.home}/${app.name}" failonerror="false"> </delete> <delete dir="${webapps.home}/${app.name}.war"> </delete> </target> <!-- 创建新的发布所涉及的路径 它取决于clean_all这个target,也就是说如果要执行它,首先得等clean_all执行完毕 --> <target name="prepare" depends="clean_all"> <echo message="Tomacat Home=${tomcat.home}" /> <echo message="webapps Home=${webapps.home}" /> <mkdir dir="${classes.home}" /> <mkdir dir="${deploy.home}" /> <mkdir dir="${build.home}" /> </target> <!-- 编译工程目录【${src.home}】下的所有java文件,并将编译好的class文件放在【${classes.home}】下面。编译的时候需要类库的支持 --> <target name="compile" depends="prepare"> <javac srcdir="${src.home}" destdir="${classes.home}" debug="yes" includeantruntime="true"> <classpath refid="compile.classpath" /> </javac> </target> <!-- 构建良好的WEB application结构。将工程目录下的对应的文件COPY构建目录下 --> <target name="build" depends="compile"> <copy todir="${build.home}"> <fileset dir="${web.home}" /> </copy> <!-- 打包工程目录下的所有资源文件。如果存在不同后缀名的资源文件则在include里面引入 --> <copy todir="${build.classes}"> <fileset dir="${src.home}"> <include name="**/*.properties" /> <include name="**/*.xml" /> </fileset> </copy> <!-- 打包BUILD目录下的文件成为一个WAR文件 --> <jar jarfile="${deploy.home}/${app.name}.war" basedir="${build.home}" /> </target> <!-- 发布,直接将${deploy.home}/${app.name}.war拷贝至web容器下的发布目录 --> <target name="deploy" depends="build"> <scp file="${deploy.home}/${app.name}.war" todir="root:rootroot@192.168.1.2:/home/jboss-4.2.3.GA\server\default\deploy" trust="true"/> </target> </project>