Mercurial > public > develkit
diff ssdt-common-build.xml @ 4:be1051bf262f
add globally common ant scripts
author | smith@nwoca.org |
---|---|
date | Fri, 17 Dec 2010 16:55:03 -0500 |
parents | |
children | 9c847b8c7e9c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ssdt-common-build.xml Fri Dec 17 16:55:03 2010 -0500 @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="ssdt-common-build" default="all" basedir="."> +<!-- + ssdt common build functions. Contains generalized tasks to perform + common functions. Assumes some standard properties from a NetBeans + project are provided. + + Properties used for webapps: + + build.web.dir - docBase of build webapp. + web.docbase.dir - source docBase of webapp + web.context.path - path to install webapp in Tomcat + tomcat.username - Tomcat manager username + tomcat.password - Tomcat manager password + +--> +<!-- + <taskdef name="groovy" + classname="org.codehaus.groovy.ant.Groovy" + classpath="${tools.dir}/groovy-1.0/embeddable/groovy-all-1.0.jar"/> + + <taskdef name="groovyc" + classname="org.codehaus.groovy.ant.Groovyc" + classpath="${tools.dir}/groovy-1.0/embeddable/groovy-all-1.0.jar"/> + +--> + <target name="project.cvs.update" + depends="project.init" + unless="build.devel.bamboo"> + <!-- Get the latest from CVS --> + <cvs command="up -d -P"/> + </target> + + <target name="project.cc.init" depends="project.init" description="Deprecated use project.ini"> + <echo level="warning" message="project.cc.init is deprecated. Use project.init"/> + </target> + + <target name="project.init" depends="init,-project.cvs.version.init"> + <property name="project.version" value="${ivy.revision}"/> + <property name="project.name" value="${ivy.module}"/> + <delete failonerror="false" quiet="true" dir="${build.dir}/checkstyle"/> + <delete failonerror="false" quiet="true" dir="${build.dir}/tests" /> + <delete failonerror="false" quiet="true" dir="${build.dir}/findbugs" /> + <property name="ssdt.tools.jar" value="${tools.dir}/dist/ssdt-tools.jar"/> + </target> + + <target name="-project.cvs.getbranch"> + <property name="project.version.file" value="${src.dir}/version.properties"/> + <mkdir dir="${build.dir}"/> + <cvs command="status build.xml" output="${build.dir}/cvs-branch.txt"/> + <loadfile srcfile="${build.dir}/cvs-branch.txt" property="project.cvs.branch"> + <filterchain> + <tabstospaces tablength="1"/> + <linecontains> + <contains value="Sticky Tag:"/> + </linecontains> + <replacestring from="Sticky Tag:" to=""/> + <replaceregex pattern="\(.*\)" replace=""/> + <replacestring from=" " to=""/> + <striplinebreaks/> + </filterchain> + </loadfile> + <condition property="project.cvs.reset.version.branch" + value="-r ${project.cvs.branch}" + else=""> + <isset property="project.cvs.branch"/> + </condition> + + </target> + + <target name="-project.cvs.version.reset"> + <echo message="Resetting version file ${project.cvs.reset.version.branch}" level="info"/> + <cvs command="update -A -C ${project.cvs.reset.version.branch} ${project.version.file}"/> + </target> + + <target name="project.cvs.version" + depends="project.init,-project.cvs.version.init" + if="build.devel"> + <echo message="comitting project version file" level="info"/> + <cvs command="commit -n -mversion-update ${project.version.file}"/> + </target> + + <target name="-project.cvs.version.init" + depends="-project.cvs.getbranch,-project.cvs.version.reset"> + </target> + + + <target name="project.version" depends="project.init" > + <propertyfile + file="${project.version.file}" comment="Version build information"> + <entry key="projectName" value="${project.name}"/> + <entry key="projectVersion" value="${project.version}"/> + <entry key="buildDate" type="date" value="now"/> + <entry key="buildNumber" default="0" type="int" operation="+" value="1"/> + <entry key="built.by" value="${ant.version}"/> + <entry key="build.java.version" value="${ant.java.version}"/> + <entry key="built.on" value="${os.name} ${os.arch} ${os.version} (${user.name})"/> + </propertyfile> + <property file="${project.version.file}" prefix="version"/> + <copy failonerror="false" + file="${project.version.file}" + todir="${build.classes.dir}"/> + </target> + + <target name="-project.pre-init" depends="init"> + <condition property="tomcat.available"> + <and> + <available file="${tools.dir}/etc/tomcat_anttask.properties"/> + <available file="${tomcat.home}" type="dir"/> + </and> + </condition> + </target> + + <target name="-project.init-tomcat" depends="-project.pre-init" if="tomcat.available"> + <property name="tomcat.url" value="http://localhost:8084"/> + <property name="tomcat.manager.url" value="${tomcat.url}/manager"/> + <property name="ssdt.tools.jar" value="${tools.dir}/dist/ssdt-tools.jar"/> + + <path id="project.tools.classpath"> + <pathelement location="${ssdt.tools.jar}" /> + <fileset dir="${tomcat.home}" includes="**/lib/catalina-ant.jar"/> + </path> + + <taskdef resource="ssdttomcattasks.properties" classpathref="project.tools.classpath"/> + <taskdef file="${tools.dir}/etc/tomcat_anttask.properties" classpathref="project.tools.classpath"/> + </target> + + <target name="project.web.context" depends="-project.init-tomcat,init"> + <dirname property="docBase.dir.name" file="${build.web.dir}/WEB-INF"/> + + <property name="project.context.file" value="${web.docbase.dir}/META-INF/context.xml"/> + + <copy file="${project.context.file}" + tofile="${build.web.dir}/META-INF/context-dev.xml" + overwrite="true"> + <filterchain> + <tokenfilter> + <filetokenizer/> + <replaceregex + pattern="<Context.*>" + replace="<Context path="${web.context.path}" docBase="@DOCBASE" >" + /> + </tokenfilter> + </filterchain> + </copy> + <replace file="${build.web.dir}/META-INF/context-dev.xml" + token="@DOCBASE" + value="${docBase.dir.name}"/> + </target> + + <target name="project.undeploy" depends="-project.init-tomcat"> + <dirname property="build.web.dir.path" file="${build.web.dir}/WEB-INF"/> + <undeploy password="${tomcat.password}" + url="${tomcat.manager.url}" username="${tomcat.username}" + path="${web.context.path}" + failonerror="false" + /> + </target> + + <target name="project.deploy" depends="project.undeploy,project.web.context"> + <dirname property="build.web.dir.path" file="${build.web.dir}/WEB-INF"/> + <deploy password="${tomcat.password}" + url="${tomcat.manager.url}" username="${tomcat.username}" + path="${web.context.path}" + config="${build.web.dir.path}/META-INF/context-dev.xml" + /> + <delete file="${build.web.dir.path}/META-INF/context-dev.xml" failonerror="false"/> + </target> + +</project>