在Eclipse里面做web项目确实是一件比较烦人的事,所有的事都得自己做。但却不失为一个学习,提高自己知识的好机会。像MyEclipse,只要发布一下,web应用就可以访问了,但是Eclipse里面,需要自己手动编译,手动打包发布到服务器才能访问。下面就是一个简单用Ant发布web应用的例子,别小看它,我发布的这个应用可是SSH框架的集成。
<project name="onlinestore" default="dist" basedir="." > <!-- 定义一些全局的变量,在下面的taget里面会用到的一些路径 --> <property name="src" value="${basedir}/src" /> <property name="webapp.name" value="onlinestore" /> <property name="WebContent" value="${basedir}/WebContent" /> <property name="META-INF" value="${WebContent}/META-INF" /> <property name="WEB-INF" value="${WebContent}/WEB-INF" /> <property name="lib" value="${WEB-INF}/lib" /> <property name="classes" value="${WEB-INF}/classes" /> <property name="dist" value="${basedir}/dist" /> <!-- 这里是Joss的web应用发布的路径,根据实际情况而定 --> <property name="server" value="D:/jboss-4.0.3/server/default/deploy/" /> <property name="build" value="${basedir}/build" /> <property name="weblib" value="${build}/WEB-INF/lib" /> <property name="webclasses" value="${build}/WEB-INF/classes" /> <!-- 这是应用里面用到的所有jar包,所以需要你把所有jar包都放到lib路径下面, 下面compile的时候会用到path的id --> <path id="build.classpath" > <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> </path> <!-- 做一些清理工作,以保证得到的文件都是最新的 --> <target name="clean"> <delete file="${dist}/${webapp.name}.war" /> <delete file="${server}/${webapp.name}.war" /> <delete dir="${build}" /> <delete dir="${weblib}" /> <delete dir="${webclasses}" /> <delete dir="${classes}" /> </target> <target name="prepare" depends="clean"> <mkdir dir="${build}" /> <mkdir dir="${weblib}" /> <mkdir dir="${webclasses}" /> <mkdir dir="${classes}"/> </target> <!-- 编译源文件,也就是java代码,把生成的class文件放到指定的destdir下 --> <target name="compile" depends="prepare"> <javac srcdir="src" destdir="${classes}" debug="on" deprecation="on"> <classpath refid="build.classpath" /> <include name="**/*.java"/> </javac> </target> <!-- 这步是为了把所有放在src下面的配置文件都copy到classes目录下, 如果有经验的人一定注意到过,一般配置文件都是放在classes目录下的 --> <target name="assemble" depends="compile"> <copy todir="${classes}"> <fileset dir="${src}"> <exclude name="**/*.java"/> <exclude name="**/*.class"/> </fileset> </copy> <!-- 把WebContent(或WebRoot)里面的内容集体拷贝到build目录下,以便打包方便 --> <copy todir="${build}"> <fileset dir="${WebContent}" /> </copy> </target> <!-- 最后一步,把build下的东西打包成war包,发布到服务器里面,搞定 --> <target name="dist" depends="assemble"> <war destfile="${dist}/${webapp.name}.war" > <fileset dir="${build}" > <include name="**/*"/> </fileset> </war> <copy file="${dist}/${webapp.name}.war" todir="${server}" /> </target> </project>
这是我做了一个struts2 + hibernate + spring 集成案例用的build.xml,该文件放在项目根目录下面。希望对大家会有所帮助...