用ant启动和关闭tomcat

http://blog.csdn.net/youjianbo_han_87/article/details/4456209

(一)linux环境(端口号应根据自己的tomcat配置,进行设置)

A:启动TOMCAT

<target name="linux.start.tomcat" description="starts tomcat in the current console window">
                <if>
                        <not>
                                <socket server="localhost" port="23080" />
                        </not>
                        <then>
                                <echo message="start tomcat..." />
                                <exec executable="${basedir}/bin/startup.sh">
                                        <env key="CATALINA_HOME" value="${basedir}" />
                                </exec>
                                <waitfor maxwait="5" maxwaitunit="minute" checkevery="5" checkeveryunit="second">
                                        <and>
                                                <socket server="localhost" port="23080" />
                                        </and>
                                </waitfor>
                        </then>
                </if>
        </target>

B:关闭tomcat

<target name="linux.stop.tomcat" description="starts tomcat in the current console window">
                <if>
                        <socket server="localhost" port="23080" />
                        <then>
                                <echo message="stop tomcat..." />
                                <exec executable="${basedir}/bin/shutdown.sh" failonerror="false">
                                        <env key="CATALINA_HOME" value="${basedir}" />
                                </exec>
                                <echo message="${basedir}/bin/shutdown.sh" />
                                <waitfor maxwait="5" maxwaitunit="minute" checkevery="5" checkeveryunit="second">
                                        <not>
                                                <socket server="localhost" port="23080" />
                                        </not>
                                </waitfor>
                        </then>
                </if>
        </target>

(二)WINDOWS环境

A:启动TOMCAT

<target name="windows.start.tomcat" description="starts tomcat in the current console window">
                <if>
                        <not>
                                <socket server="localhost" port="23080" />
                        </not>
                        <then>
                                <echo message="start tomcat..." />
                                <java classname="org.apache.catalina.startup.Bootstrap" spawn="yes" fork="yes">
                                        <jvmarg line='-Dcatalina.home="${tomcat.home}"' />
                                        <jvmarg value="-Dgoodhope.adapter.classname=com.goodhope.gameservice.adapters.DummyAdapter" />
                                        <arg value="start" />
                                        <classpath>
                                                <pathelement path="${java.home}/../lib/tools.jar" />
                                                <fileset dir="${tomcat.home}">
                                                        <include name="bin/bootstrap.jar" />
                                                </fileset>
                                        </classpath>
                                </java>
                                <waitfor maxwait="5" maxwaitunit="minute" checkevery="5" checkeveryunit="second">
                                        <and>
                                                <socket server="localhost" port="23080" />
                                        </and>
                                </waitfor>
                        </then>
                </if>
        </target>

B:关闭TOMCAT

<target name="windows.stop.tomcat" description="stops tomcat in the current console window">
                <if>
                        <and>
                                <socket server="localhost" port="23080" />
                        </and>
                        <then>
                                <echo message="stop tomcat..." />
                                <java classname="org.apache.catalina.startup.Bootstrap" fork="yes">
                                        <jvmarg value="-Dcatalina.home=${tomcat.home}" />
                                        <jvmarg value="-Djava.endorsed.dirs=${tomcat.home}/common/endorsed" />
                                        <jvmarg value="-Dcatalina.base=${tomcat.home}" />
                                        <jvmarg value="-Djava.io.tmpdir=${tomcat.home}/temp" />
                                        <arg value="stop" />
                                        <classpath>
                                                <pathelement path="${java.home}/../lib/tools.jar" />
                                                <fileset dir="${tomcat.home}">
                                                        <include name="bin/bootstrap.jar" />
                                                        <include name="server/lib/*.jar" />
                                                        <include name="common/lib/*.jar" />
                                                </fileset>
                                        </classpath>
                                </java>
                                <waitfor maxwait="5" maxwaitunit="minute" checkevery="5" checkeveryunit="second">
                                        <not>
                                                <socket server="localhost" port="23080" />
                                        </not>
                                </waitfor>
                        </then>
                </if>
        </target>

(三)再此之前,应在build.xml前面定义一个任务,注意应将相应JAR包放到对应目录下

<taskdef resource="net/sf/antcontrib/antlib.xml">
                <classpath>
                        <pathelement location="${basedir}/lib/ant-contrib.jar" />
                </classpath>
        </taskdef>

附加我自己的配置:

<!-- Tomcat -->
	<!-- Windows -->
	<target name="win_publish_tomcat" depends="war_rhcpm" description="准备发布war包到tomcat[Windows]">
		<echo message="===============准备发布war包到tomcat===============" />
		<echo message="整理${win.tomcat.home}" />
		<delete file="${win.tomcat.home}/webapps/rhcpm.war">
		</delete>
		<delete dir="${win.tomcat.home}/webapps/rhcpm">
		</delete>
		<delete dir="${win.tomcat.home}/work/Catalina/localhost/rhcpm">
		</delete>
		<echo message="发布war文件${win.tomcat.home}" />
		<copy file="${dist.dir}/rhcpm-${rhcpm.version}.${svn.head.rev}.war" tofile="${win.tomcat.home}/webapps/rhcpm.war" />
	</target>
	<target name="win_start_tomcat" depends="win_publish_tomcat" description="启动tomcat服务器[Windows]">
		<echo message="===============启动tomcat===============" />
		<exec executable="cmd" dir="${win.tomcat.home}/bin" failonerror="false" output="${win.log.file}" append="true">
			<!-- <arg value="/c" /> -->
			<env key="CATALINA_HOME" path="${win.tomcat.home}" />
			<arg value="/c startup.bat" />
		</exec>
	</target>
	<target name="win_stop_tomcat" description="停止tomcat服务器[Windows]">
		<echo message="===============停止tomcat===============" />
		<exec executable="cmd" dir="${win.tomcat.home}/bin" failonerror="false" output="${win.log.file}" append="true">
			<!-- <arg value="/c" /> -->
			<env key="CATALINA_HOME" path="${win.tomcat.home}" />
			<arg value="/c shutdown.bat" />
		</exec>
	</target>
	<!-- linux -->
	<target name="linux_publish_tomcat" depends="war_rhcpm" description="准备发布war包到tomcat[Linux]">
		<echo message="===============准备发布war包到tomcat===============" />
		<echo message="整理${linux.tomcat.home}" />
		<delete file="${linux.tomcat.home}/webapps/rhcpm.war">
		</delete>
		<delete dir="${linux.tomcat.home}/webapps/rhcpm">
		</delete>
		<delete dir="${linux.tomcat.home}/work/Catalina/localhost/rhcpm">
		</delete>
		<echo message="发布war文件${linux.tomcat.home}" />
		<copy file="${dist.dir}/rhcpm-${rhcpm.version}.${svn.head.rev}.war" tofile="${linux.tomcat.home}/webapps/rhcpm.war" />
	</target>
	<target name="linux_start_tomcat" depends="linux_publish_tomcat" description="启动tomcat服务器[Linux]">
		<echo message="===============启动tomcat===============" />
		<exec executable="${linux.tomcat.home}/bin/startup.sh" failonerror="false" output="${linux.log.file}" append="true">
			<!-- <arg value="/c" /> -->
			<env key="CATALINA_HOME" path="${linux.tomcat.home}" />
			<arg value="/c startup.sh" />
		</exec>
	</target>
	<target name="linux_stop_tomcat" description="停止tomcat服务器[Linux]">
		<echo message="===============停止tomcat===============" />
		<exec executable="${linux.tomcat.home}/bin/shutdown.sh" failonerror="false" output="${linux.log.file}" append="true">
			<!-- <arg value="/c" /> -->
			<env key="CATALINA_HOME" path="${linux.tomcat.home}" />
		</exec>
	</target>

ant

相关推荐