2008/06/08 01:28

앤트(Ant)에서 톰캣을 실행/중지해 보아요.

앤트에서 톰캣을 실행하거나 중지해 보아요.

방법은 간단해요. <java /> 태스크로 org.apache.catalina.startup.Bootstrap 클래스를 실행하면 돼요.
다만 프로퍼티 옵션이나 환경 변수 등의 실행 옵션을 잘 주어야 해요.

다음과 같이 해 보아요.

build.properties
java_home=C:/Program Files/Java/jdk1.5.0_14
catalina.home=C:/Programz/Tomcat/5.5
catalina.base=C:/Project/Tomcat/Configuration


java.home 이라는 프로퍼티가 이미 존재(자동으로 생성)하기 때문에, java_home 이라는 이름으로 만들었어요.

build.xml
<project name="history" default="default" basedir=".">

	<property file="build.properties" />

	<target name="default">
		<echo message="이것은 'Ant Tomcat Container'의 빌드 파일이에요." />
		<echo message="앤트(ant) 1.7.0 버전에 최적화되어 있어요." />
		<echo message="사용법:" />
		<echo message="ant tomcat.start" />
		<echo message="ant tomcat.stop" />
		<echo message="참고:" />
		<echo message="java.home = ${java.home}" />
		<echo message="java_home = ${java_home}" />
		<echo message="catalina.home = ${catalina.home}" />
		<echo message="catalina.base = ${catalina.base}" />
	</target>

	<target name="tomcat.start">
		<java classname="org.apache.catalina.startup.Bootstrap" jvm="${java_home}/bin/java" fork="true" spawn="true">
			<classpath>
				<fileset dir="${catalina.home}/bin">
					<include name="bootstrap.jar" />
				</fileset>
			</classpath>
			<arg value="start" />
			<sysproperty key="catalina.home" value="${catalina.home}" />
			<sysproperty key="java.endorsed.dirs" value="${catalina.home}/common/endorsed" />
			<sysproperty key="java.util.logging.manager" value="org.apache.juli.ClassLoaderLogManager" />
			<sysproperty key="java.util.logging.config.file" value="${catalina.home}/conf/logging.properties" />
			<sysproperty key="catalina.base" value="${catalina.base}" />
			<sysproperty key="java.io.tmpdir" value="${catalina.base}/temp" />
		</java>
	</target>

	<target name="tomcat.stop">
		<java classname="org.apache.catalina.startup.Bootstrap" jvm="${java_home}/bin/java" fork="true" spawn="true">
			<classpath>
				<fileset dir="${catalina.home}/bin">
					<include name="bootstrap.jar" />
				</fileset>
			</classpath>
			<arg value="stop" />
			<sysproperty key="catalina.base" value="${catalina.home}" />
			<sysproperty key="catalina.home" value="${catalina.home}" />
			<sysproperty key="java.endorsed.dirs" value="${catalina.home}/common/endorsed" />
			<sysproperty key="java.util.logging.manager" value="org.apache.juli.ClassLoaderLogManager" />
			<sysproperty key="java.util.logging.config.file" value="${catalina.home}/conf/logging.properties" />
			<sysproperty key="java.io.tmpdir" value="${catalina.home}/temp" />
		</java>
	</target>

</project>


톰캣은 JRE가 아니라 JDK로 실행시켜야 하기 때문에 <java /> 태스크의 jvm 속성으로 JDK의 java를 지정했어요.
그리고 새로운 JVM에서 실행이 되도록 fork 속성을, 앤트의 JVM이 종료되더라도 톰캣의 JVM이 계속 남아 있게 하기 위해서 spawn 속성을 true로 지정했어요.

환경:
    Ant 1.7.0
    Tomcat 5.0 or 5.5

Trackback 1 Comment 4