>>>>>>>>>>>声明
1.目的是学习,备忘,共享。个人表达能力有限,看不懂,表达错误的,见谅
>>>>>>>>>>>ant是什么
1.专业一点说是构建工具,是协助开发人员管理工程的工具
2.通俗一点说是懒人工具,帮助我们做一些重复的劳动
3.举个例子:发布一个web工程,你会如何做
a.将web工程打包
b.停止web工程
c.上传web工程
d.重启web工程
通常,你可能会用IDE打包,然后登陆到服务器,把WEB工程shutdown,再用上传工具传war包,然后再重启
有了ant,你不用这么累了,运行一个build.xml就OK。
>>>>>>>>>>ant的特点
1.跨平台,因为用JAVA写的
2.功能强大(这是一个口号),扩展性比较好(这倒是实话,但代价是你得找支持的jar包)
3.上手容易,因为语法简单
>>>>>>>>>>ant的应用,eclipse下
1.传说牛人都不用IDE,我用eclipse,这玩意儿还是免费的,真棒。
2.exlipse3.0以后应该都内嵌ant,找找看:$eclipse\plugins\org.apache.ant_1.6.5
3.新建工程,工程根目录下新建build.xml
4.试试好不用,运行一下
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="WebTest" basedir="E:\work_ccats2\WebTest" default="main">
- <target name="main" depends="test" description="Main target">
- </target>
- <target name="test" description="test">
- <echo> task start </echo>
- </target>
- </project>
<?xml version="1.0" encoding="UTF-8"?>
<project name="WebTest" basedir="E:\work_ccats2\WebTest" default="main">
<target name="main" depends="test" description="Main target">
</target>
<target name="test" description="test">
<echo> task start </echo>
</target>
</project>
5.ftp功能:
a.下载commons-net-1.4.0.jar jakarta-oro-2.0.8.jar NetComponents.jar optional.jar
b.上面这些jar,如果你的ant或jdk版本高,有的没有,但如果不是,劝你都下
c.eclipse下: Window->Preferance->Ant->Runtime->Ant Home Entries->自己加上jar
6.ssh:
a.下载jsch-0.1.41.jar
b.后面同[5]
7.给一个build.xml样例
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="WebTest" basedir="E:\work_ccats2\WebTest" default="main">
- <target name="main" depends="taskover" description="Main target">
- </target>
-
- <!-- ***************************变量定义开始************************* -->
- <!--工程名称-->
- <property name="project.name" value="WebTest"/>
- <!--打包war文件存放的位置-->
- <property name="war.dir" location="E:\war"/>
- <!--服务器IP-->
- <property name="hostIP" value="10.4.116.212" />
- <!--服务器OS帐户-->
- <property name="userID" value="esb" />
- <!--服务器OS密码-->
- <property name="password" value="esb" />
- <!--服务器tomcat路径-->
- <property name="hostHome" value="/home/esb" />
- <!-- *************************变量定义结束************************* -->
-
- <!-- 测试 -->
- <target name="test" description="test">
- <echo> task start </echo>
- </target>
- <!-- 打包war文件 -->
- <target name="pgWar" depends="test" description="Package application as a war">
- <mkdir dir="${war.dir}" />
- <war destfile="${war.dir}/${project.name}.war" webxml="web.xml">
- <fileset dir="${basedir}">
- </fileset>
- </war>
- </target>
-
-
- <target name="remote-tomcat-stop" depends="pgWar" >
- <sshexec host="${hostIP}" username="${userID}" password="${password}"
- command="ps -ef|grep tomcat55|grep -v grep |awk '{print $2}'|xargs -n1 kill -9;ls;rm -rf /home/esb/tomcat55/webapps/WebTest*"
- trust="true" />
- <sleep seconds="5"/>
- </target>
-
- <!-- 上传文件-->
- <target name="uploadFile" depends="remote-tomcat-stop" >
- <ftp server="${hostIP}" remotedir="${hostHome}/tomcat55/webapps" userid="${userID}"
- password="${password}" depends="yes" >
- <fileset dir="${war.dir}">
- <include name="**/*.war"/>
- </fileset>
- </ftp>
- </target>
-
- <!-- 远程重启tomcat-->
- <target name="remote-tomcat-start" depends="uploadFile" >
- <sshexec host="${hostIP}" username="${userID}" password="${password}"
- command="cd /home/esb/tomcat55/bin;JAVA_HOME=/home/esb/jdk1.5/jdk1.5.0_06 export JAVA_HOME;nohup sh startup.sh;ls"
- trust="true" />
- <sleep seconds="5"/>
- </target>
-
- <target name="taskover" depends="remote-tomcat-start" >
- <echo> task over </echo>
- </target>
-
- </project>
<?xml version="1.0" encoding="UTF-8"?>
<project name="WebTest" basedir="E:\work_ccats2\WebTest" default="main">
<target name="main" depends="taskover" description="Main target">
</target>
<!-- ***************************变量定义开始************************* -->
<!--工程名称-->
<property name="project.name" value="WebTest"/>
<!--打包war文件存放的位置-->
<property name="war.dir" location="E:\war"/>
<!--服务器IP-->
<property name="hostIP" value="10.4.116.212" />
<!--服务器OS帐户-->
<property name="userID" value="esb" />
<!--服务器OS密码-->
<property name="password" value="esb" />
<!--服务器tomcat路径-->
<property name="hostHome" value="/home/esb" />
<!-- *************************变量定义结束************************* -->
<!-- 测试 -->
<target name="test" description="test">
<echo> task start </echo>
</target>
<!-- 打包war文件 -->
<target name="pgWar" depends="test" description="Package application as a war">
<mkdir dir="${war.dir}" />
<war destfile="${war.dir}/${project.name}.war" webxml="web.xml">
<fileset dir="${basedir}">
</fileset>
</war>
</target>
<target name="remote-tomcat-stop" depends="pgWar" >
<sshexec host="${hostIP}" username="${userID}" password="${password}"
command="ps -ef|grep tomcat55|grep -v grep |awk '{print $2}'|xargs -n1 kill -9;ls;rm -rf /home/esb/tomcat55/webapps/WebTest*"
trust="true" />
<sleep seconds="5"/>
</target>
<!-- 上传文件-->
<target name="uploadFile" depends="remote-tomcat-stop" >
<ftp server="${hostIP}" remotedir="${hostHome}/tomcat55/webapps" userid="${userID}"
password="${password}" depends="yes" >
<fileset dir="${war.dir}">
<include name="**/*.war"/>
</fileset>
</ftp>
</target>
<!-- 远程重启tomcat-->
<target name="remote-tomcat-start" depends="uploadFile" >
<sshexec host="${hostIP}" username="${userID}" password="${password}"
command="cd /home/esb/tomcat55/bin;JAVA_HOME=/home/esb/jdk1.5/jdk1.5.0_06 export JAVA_HOME;nohup sh startup.sh;ls"
trust="true" />
<sleep seconds="5"/>
</target>
<target name="taskover" depends="remote-tomcat-start" >
<echo> task over </echo>
</target>
</project>
>>>>>>>>>>>>>命令行下的ant应用
1.环境变量设一下
ANT_HOME= $ant路径
PATH = %ANT_HOME%;%ANT_HOME%\bin
2.测试
输入ant,看有反应没