使用ant部署eclipse开发的web工程到tomcat
由于myeclipse体积的不断膨胀,搞的现在的开发很痛苦,一直在等它"活"过来,就算不计较效率了,人也忍受不了。所以觉得使用eclipse,毕竟它比myeclipse轻巧的多。但是eclipse开发的web工程要部署到tomcat服务器上好像不可以(我指的是像myeclipse那样将工程拷贝到tomcat的目录下),至少到目前为止,我个人没发现使用eclipse本身能把web工程部署到tomcat服务器上。恕小弟愚见,如果哪位大侠知道eclipse有这样的功能还请赐教。而且eclipse自己配置的服务器个人感觉也不是很爽,居然建立了一个Servers目录!为了解决以上所提到的问题。我想到了Ant,使用Ant工具应该是可以完成这样的需求的。Ant以前也没写过,边学边写,基本上是搞定了以上的问题。特与各位大侠分享:手机充值:http://yjck67.taobao.com,自己的小店
首先,我们说web工程的部署实际上是将WebConten(myeclipse是WebRoot)目录下的所以东东拷贝到tomcat服务器上,奔于这样的想法,所以就用ant的copy命令复制就是,看代码:
<!--部署web工程--> <target name="copyPro" depends="clean"> <!--在tomcat下建立工程的目录--> <mkdir dir="${apps.dir}"/> <!--copy应用的目录到tomcat的webapps下--> <copy todir="${apps.dir}" > <fileset dir="${srcDic.dir}"></fileset> </copy> <!--copy已编译的class文件到WEB-INF目录下--> <copy todir="${apps.dir}\WEB-INF" > <fileset dir="${basedir}\build"></fileset> </copy> </target>
以上是之前写的代码,2011-11-21新的如下:以供参考
<?xml version="1.0" encoding="UTF-8"?> <project name="familymanager" basedir="." default="deploy"> <property name="dir.src" location="${basedir}\src" /> <property name="jdk.dir" location="C:\Java\jdk1.6.0_16"/> <property name="srcDic.dir" value="${basedir}\WebRoot"/> <property name="dir.lib" location="${basedir}\WebRoot\WEB-INF\lib" /> <property name="dir.classes" location="${srcDic.dir}\WEB-INF\classes"></property> <property name="server.dir" value="D:\apache-tomcat-6.0.20"></property> <property name="apps.dir" value="${server.dir}\webapps\${ant.project.name}"></property> <!--清理工程目录--> <target name="cleanwebserver" description="清理服务器端工程"> <delete dir="${apps.dir}"></delete> </target> <target name="clean" description="清理编译的class文件"> <echo message="---->clean class files ...."></echo> <delete dir="${dir.classes}"></delete> </target> <target name="compile" depends="clean" description="编译Java代码"> <echo message="---->compile java files...."></echo> <mkdir dir="${dir.classes}"/> <javac debug="on" includes="**/*.java" destdir="${dir.classes}" executable="${jdk.dir}/bin/javac.exe" compiler="javac1.6" source="1.6" target="1.6" fork="yes" encoding="utf-8" listfiles="yes" memoryInitialSize="128m" memoryMaximumSize="256m"> <src path="${dir.src}"> </src> <classpath> <fileset dir="${dir.lib}" includes="**/*.jar" /> <fileset dir="${dir.lib}" includes="**/*.zip" /> </classpath> </javac> </target> <target name="deploy" depends="compile" description="部署工程"> <echo message="---->deploy project...."></echo> <!--在tomcat下建立工程的目录--> <mkdir dir="${apps.dir}"/> <!--copy应用的目录到tomcat的webapps下--> <copy todir="${apps.dir}" > <fileset dir="${srcDic.dir}"></fileset> </copy> <copy todir="${apps.dir}\WEB-INF\classes" > <fileset dir="${dir.src}" includes="*.xml"></fileset> <fileset dir="${dir.src}" includes="*.properties"></fileset> </copy> </target> <target name="copy-jsp" description="复制jsp"> <echo message="---->copy jsp file...."></echo> <!--在tomcat下建立工程的目录--> <mkdir dir="${apps.dir}"/> <!--copy应用的目录到tomcat的webapps下--> <copy todir="${apps.dir}" > <fileset dir="${srcDic.dir}"></fileset> </copy> <copy todir="${apps.dir}\WEB-INF\classes" > <fileset dir="${dir.src}" includes="*.xml"></fileset> <fileset dir="${dir.src}" includes="*.properties"></fileset> </copy> </target> </project>
是不是很简单,到这,eclipse下工程的部署就算完成了。
其次,我们再解决tomcat启动的问题,我们同样可以使用Ant解决,使用Ant启动tomcat和关闭tomcat,看代码:
<!--启动tomcat服务器--> <target name="start tomcat" description="start tomcat ...."> <exec executable="${server.dir}/bin/startup.bat" spawn="true" vmlauncher="false"> <env key="CATALINA_HOME" value="${server.dir}" /> <arg line="/c start ${server.dir}/bin/startup.bat" /> </exec> </target> <!--关闭tomcat服务器--> <target name="stop tomcat"> <java jar="${server.dir}/bin/bootstrap.jar" fork="true"> <jvmarg value="-Dcatalina.home=${server.dir}"/> <arg line="stop"/> </java> <waitfor maxwait="5" maxwaitunit="second"> <available file="errors.log"/> </waitfor> </target>
这样启动的tomcat是最原始的黑窗口显示,如果代码出现问题不便于调试,所以这里推荐一个tomcat的插件,网上很多人推荐的,那就是Sysdeo Tomcat plugin东西,要想去官方网站,还得去google下,百度对国外网站没办法,不过这个东西官方再没更新,321这个版本都好长时间了,幻想着有更方便的应用。下载后将里面的文件整个扔到eclipse的drops目录下启动tomcat即可完成安装。安装完成后进行简单的配置即可,是不是感觉世界又美好了一点点呢。
最后说明一下注意事项:
1.Ant脚本的<project name="XXX" basedir=".">位置的XXX必须保证和工程的名称一致;
2.工程所以用到的jar文件都必须放到lib目录下,因为本脚本局势copyWebContent目录。
3.好像没啥注意的了,哦,对了,注意:我将这个Ant脚本连同那个插件放到附件上,呵呵!
4.再上传一个ant的使用教程。