创建战争文件(使用eclipse)以在tomcat上运行的最佳实践是什么?教程,链接,示例受到高度赞赏。
您可以使用Ant来设置,编译,WAR和部署解决方案。
<target name="default" depends="setup,compile,buildwar,deploy"></target>
然后,您可以在Eclipse中执行一键操作以运行该Ant目标。以下是每个步骤的示例:
我们假设您的代码组织如下:
${basedir}/src
${basedir}/web
${basedir}/web/lib
${basedir}/web/META-INF
${basedir}/web/WEB-INF
定义一个setup任务,该任务创建分发目录并复制需要直接警告的所有工件:
setup
<target name="setup"> <mkdir dir="dist" /> <echo>Copying web into dist</echo> <copydir dest="dist/web" src="web" /> <copydir dest="dist/web/WEB-INF/lib" src="${basedir}/../web/WEB-INF/lib" /> </target>
将您的Java文件构建为类,并复制位于其下src但需要在运行时可用的任何非Java构件(例如属性,XML文件等):
src
<target name="compile"> <delete dir="${dist.dir}/web/WEB-INF/classes" /> <mkdir dir="${dist.dir}/web/WEB-INF/classes" /> <javac destdir="${dist.dir}/web/WEB-INF/classes" srcdir="src"> <classpath> <fileset dir="${basedir}/../web/WEB-INF/lib"> <include name="*" /> </fileset> </classpath> </javac> <copy todir="${dist.dir}/web/WEB-INF/classes"> <fileset dir="src"> <include name="**/*.properties" /> <include name="**/*.xml" /> </fileset> </copy> </target>
创建WAR本身:
<target name="buildwar"> <war basedir="${basedir}/dist/web" destfile="My.war" webxml="${basedir}/dist/web/WEB-INF/web.xml"> <exclude name="WEB-INF/**" /> <webinf dir="${basedir}/dist/web/WEB-INF/"> <include name="**/*.jar" /> </webinf> </war> </target>
最后,您可以设置任务以将WAR直接部署到Tomcat部署位置:
<target name="deploy"> <copy file="My.war" todir="${tomcat.deploydir}" /> </target>
一旦完成所有这些设置,只需default从Eclipse 启动目标即可编译,WAR和部署您的解决方案。
default
这种方法的优点是,它可以在Eclipse外部以及Eclipse内运行,并且可以用来与其他也在开发项目的开发人员轻松共享部署策略(例如,通过源代码控制)。