Skip to content

Instantly share code, notes, and snippets.

@froop
Created December 22, 2011 08:28
Show Gist options
  • Select an option

  • Save froop/1509505 to your computer and use it in GitHub Desktop.

Select an option

Save froop/1509505 to your computer and use it in GitHub Desktop.
[Java][Ant] Tomcat+Cobertura自動化
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<project basedir="." default="start" name="sample">
<property name="tool.dir" value="tool"/>
<property name="cobertura.home" value="${tool.dir}/cobertura-1.9.4.1"/>
<property environment="env"/>
<property name="catalina.home" value="${env.CATALINA_HOME}"/>
<property name="manager.url" value="http://localhost:8080/manager/text"/>
<property name="manager.user" value="manager"/>
<property name="manager.pass" value=""/>
<property name="src.web.dir" value="WebContent" />
<property name="dest.dir" value="dest"/>
<property name="dest.java.dir" value="${dest.dir}/classes"/>
<property name="dest.instrument.dir" value="${dest.dir}/instrument"/>
<property name="dest.war.dir" value="${dest.dir}/war"/>
<property name="war.file" value="${dest.dir}/${ant.project.name}.war"/>
<import file="${catalina.home}/bin/catalina-tasks.xml"/>
<target name="start" depends="clean,war,init-coverage,tomcat-start,undeploy,deploy"/>
<target name="stop" depends="tomcat-stop,copy-coverage"/>
<target name="copy-coverage">
<copy todir="." file="${catalina.home}/bin/cobertura.ser"/>
</target>
<target name="init-coverage">
<copy todir="${catalina.home}/bin" file="./cobertura.ser" overwrite="true"/>
</target>
<target name="deploy">
<deploy url="${manager.url}"
username="${manager.user}" password="${manager.pass}"
path="/${ant.project.name}" war="${war.file}"/>
</target>
<target name="undeploy">
<undeploy url="${manager.url}"
username="${manager.user}" password="${manager.pass}"
path="/${ant.project.name}" failonerror="no"/>
</target>
<target name="war">
<property name="dest.web.content.dir" value="${dest.war.dir}/WebContent" />
<property name="dest.web.classes.dir" value="${dest.war.dir}/classes" />
<mkdir dir="${dest.war.dir}" />
<copy todir="${dest.web.content.dir}">
<fileset dir="${src.web.dir}"/>
</copy>
<copy todir="${dest.web.content.dir}/WEB-INF/lib"
file="${cobertura.home}/cobertura.jar"/>
<copy todir="${dest.web.classes.dir}">
<fileset dir="${dest.java.dir}"/>
</copy>
<copy todir="${dest.web.classes.dir}" overwrite="true">
<fileset dir="${dest.instrument.dir}"/>
</copy>
<war destfile="${war.file}" webxml="${src.web.dir}/WEB-INF/web.xml">
<fileset dir="${dest.web.content.dir}" />
<classes dir="${dest.web.classes.dir}" />
</war>
</target>
<target name="tomcat-start">
<exec executable="${catalina.home}/bin/startup.bat"
dir="${catalina.home}/bin" />
<waitfor maxwait="15000" checkevery="1000">
<socket server="localhost" port="8080"/>
</waitfor>
</target>
<target name="tomcat-stop">
<!-- shutdown.batではcobertura.serが更新されないのでCtrl+Cで -->
<!--<exec executable="${catalina.home}/bin/shutdown.bat"
dir="${catalina.home}/bin"/>-->
<exec executable="cscript">
<arg line="${tool.dir}/tomcat-close.vbs"/>
</exec>
<waitfor maxwait="15000" checkevery="1000">
<not><socket server="localhost" port="8080"/></not>
</waitfor>
<sleep seconds="3"/>
</target>
<target name="clean" description="Delete files">
<delete file="${war.file}" />
<delete dir="${dest.war.dir}"/>
</target>
</project>
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "Tomcat"
WshShell.SendKeys "^C"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment