[protege] / protege-script-console / trunk / build.xml
Project Root:

protege: protege-script-console/trunk/build.xml

File: [protege] / protege-script-console / trunk / build.xml (download) (as text)
Revision: 12427, Mon Dec 8 14:21:12 2008 UTC (11 months, 2 weeks ago) by tredmond
File size: 11212 byte(s)
added the standard protege update and install targets so that this looks like the standard plugin build scripts
<?xml version="1.0" encoding="utf-8" ?>


<!-- <!DOCTYPE project SYSTEM "/usr/local/xml/dtd/ant/project.dtd" > -->


<project name="Protege Scripting console" default="all" basedir=".">
    <description>A Protege Tab providing a scripting console that supports BSF-compliant languages for interacting with an ontology.</description>
  <!-- set global properties for this build -->
  <property name="projectName" value="ProtegeScript"/>
  <property name="version" value="0.26"/>
  <property name="extendedProjectName" value="${projectName}-${version}"/>
  <property name="packageName" value="script"/>
  <!-- <property name="PROTEGE_HOME" location="/home/dameron/protege"/> -->
  <property name="src" location="src"/>
  <basename property="srcBase" file="${src}"/>
  <property name="lib" location="lib"/>
  <basename property="libBase" file="${lib}"/>
  <property name="build" location="classes"/>
  <property name="doc" location="doc"/>
  <property name="jar" location="jar"/>
  <property name="web" location="web"/>
  <property name="info" location="info"/>
  <property name="release" location="${web}/download"/>
  <property name="pluginPrefix" value="edu.stanford.smi.protege.${packageName}"/>
  <property name="webSiteDirectory" value="dameron@fonseca.stanford.edu:/home/dameron/webPage/protegeScript"/>
  <property environment="localenv"/>

  <path id="project.classpath">
    <fileset dir="./lib">
      <include name="*.jar"/>
    </fileset>
    <pathelement location="${localenv.PROTEGE_HOME}/protege.jar"/>
    <fileset dir="${localenv.PROTEGE_HOME}/plugins">
      <include name="**/*.jar"/>
    </fileset>
  </path>

  <target name="isValidJVM">
    <condition property="correctJVM">
      <equals arg1="${ant.java.version}" arg2="1.5"/>
    </condition>
  </target>

  <target name="jvmCheckAlert" unless="correctJVM" depends="isValidJVM">
    <echo message="JVM Version: ${ant.java.version}" />
    <echo>The current version of the JVM is NOT valid!</echo>
  </target>

  <target name="init" depends="isValidJVM,jvmCheckAlert">
    <!-- Create the time stamp -->
    <tstamp>
      <format property="touch.time" pattern="EEE MMM dd HH:mm:ss zz yyyy" locale="en"/>
      <format property="doap.creation.date" pattern="yyyy-MM-dd" locale="en"/>
    </tstamp>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
    <mkdir dir="${lib}"/>
    <mkdir dir="${jar}"/>
    <mkdir dir="${doc}"/>
    <mkdir dir="${release}"/>
  </target>

  <target name="compile" depends="init,jvmCheckAlert" if="correctJVM" description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}">
      <classpath refid="project.classpath"/>
    </javac>
  </target>

  <target name="documentation" depends="init" if="correctJVM">
    <!-- Document the java code from ${src} into ${doc} -->
    <mkdir dir="${doc}"/>
    <javadoc sourcepath="${src}" destdir="${doc}" packagenames="${packageName}" version="true" author="true" windowtitle="Protege Scripting Tab v${version}">
      <classpath refid="project.classpath"/>
    </javadoc>
</target>

  <target name="jar" depends="compile, documentation" if="correctJVM">
    <!-- Get rid of the previous stuff -->
    <delete>
      <fileset dir="${jar}" includes="**"/>
    </delete>
    <!-- Regenerates additional stuff -->
    <delete failonerror="false">
      <fileset dir="${build}/${packageName}/icon" includes="**"/>
    </delete>
    <copy todir="${build}/${packageName}/icon">
      <fileset dir="${srcBase}/${packageName}/icon"/>
    </copy>
    <!-- Generate the jar files from ${build}, ${src} and ${doc} -->
    <jar jarfile="${jar}/${projectName}.jar" basedir="${build}" manifest="${src}/META-INF/MANIFEST.MF"/>
    <jar jarfile="${jar}/${extendedProjectName}-src.jar">
      <fileset dir="." includes="${srcBase}/**" />
      <fileset dir="." includes="${info}/**" />
      <fileset file="build.xml" />
    </jar>
    <jar jarfile="${jar}/${projectName}-thirdParty.jar">
      <fileset dir="." includes="${libBase}/**" />
    </jar>
    <jar jarfile="${jar}/${extendedProjectName}-doc.jar" basedir="${doc}"/>
  </target>

  <target name="all" depends="compile,documentation,jar">
  </target>

  <target name="release" depends="all" if="correctJVM">
    <!-- Generate the web page and the doap description -->
    <copy file="${web}/template/template-doap.rdf" tofile="${web}/doap.rdf" overwrite="true" />
    <replace file="${web}/doap.rdf" token="$version$" value="${version}" />
    <replace file="${web}/doap.rdf" token="$doapCreationDate$" value="${doap.creation.date}" />
    <copy file="${web}/template/template-index.html" tofile="${web}/index.html" overwrite="true" />
    <replace file="${web}/index.html" token="$version$" value="${version}" />
    <replace file="${web}/index.html" token="$modificationTimestamp$" value="${touch.time}" />
    <!-- Generate the zip files with our stuff and 3rd party jar files -->
    <mkdir dir="${release}/jnk"/>
    <copy file="./info/plugin.properties" todir="${release}/jnk"/>
    <copy file="./info/readme" todir="${release}/jnk"/>
    <copy file="./info/about_script_console.html" todir="${release}/jnk"/>
    <copy file="${jar}/${projectName}.jar" todir="${release}/jnk"/>
    <copy todir="${release}/jnk">
      <fileset dir="./lib">
	<include name="*.jar"/>
      </fileset>
    </copy>
    <copy file="${web}/doap.rdf" todir="${release}/jnk" overwrite="true" />
    <tar destfile="${release}/${extendedProjectName}.tar.gz" compression="gzip">
      <tarfileset dir="${release}/jnk" prefix="${pluginPrefix}">
	<include name="**/*"/>
      </tarfileset>
    </tar>
    <copy file="${jar}/${extendedProjectName}-src.jar" todir="${release}"/>
    <copy file="${jar}/${projectName}-thirdParty.jar" todir="${release}"/>
    <copy file="${jar}/${extendedProjectName}-doc.jar" todir="${release}"/>
    <exec executable="ln" dir="${release}">
      <arg value="-s"/>
      <arg value="-f"/>
      <arg file="${release}/${extendedProjectName}.tar.gz"/>
      <arg file="${release}/${projectName}.tar.gz"/>
    </exec>
    <delete dir="${release}/jnk"/>
    <copy file="${release}/${extendedProjectName}.tar.gz" todir="${localenv.PROTEGE_HOME}/plugins"/>
    <untar src="${localenv.PROTEGE_HOME}/plugins/${extendedProjectName}.tar.gz" dest="${localenv.PROTEGE_HOME}/plugins" compression="gzip"/>

  </target>

  <target name="clean" description="clean up" >
    <!-- Delete the ${build}, ${doc}, and ${jar} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${doc}"/>
    <delete dir="${jar}"/>
  </target>

  <target name="updateWebSite" description="Update the web site" depends="release" if="correctJVM">
    <exec executable="scp" dir="${web}">
      <arg line="index.html doap.rdf" />
      <arg line="${webSiteDirectory}" />
    </exec>
    <exec executable="scp" dir="${release}">
      <!-- <arg line="ProtegeScript-${version}*" /> -->
      <arg line="${extendedProjectName}.tar.gz ${extendedProjectName}-src.jar ${projectName}-thirdParty.jar ${extendedProjectName}-doc.jar" />
      <arg line="${webSiteDirectory}/download" />
    </exec>
<!--
    <echo>scp ${web}/index.html ${webSiteDirectory}</echo>
    <echo>scp ${web}/doap.rdf ${webSiteDirectory}</echo>
    <echo>scp ${release}/ProtegeScript-${version}* ${webSiteDirectory}/download</echo>
-->
  </target>

  <target name="showUpdateSubversionRepository" description="Passively shows the commands to invoke for updating the svn repository on smi-protege" depends="release">
    <echo level="info">mkdir /tmp/jnk</echo>
    <echo level="info">cd /tmp/jnk</echo>
    <echo level="info">svn checkout http://smi-protege.stanford.edu/repos/protege/protege-script-console/trunk .</echo>
    <echo level="info">rm edu.stanford.smi.protege.script/*</echo>
    <!-- <echo level="info">cp ${release}/${extendedProjectName}.tar.gz edu.stanford.smi.protege.script/${projectName}.jar</echo> -->
    <echo level="info">cp ${jar}/${projectName}.jar edu.stanford.smi.protege.script/${projectName}.jar</echo>
    <echo level="info">cp ${lib}/*.jar edu.stanford.smi.protege.script/</echo>
    <echo level="info">cp ${info}/* edu.stanford.smi.protege.script/</echo>
    <echo level="info">svn status</echo>
    <echo level="info">svn add ???</echo>
    <echo level="info">svn del ???</echo>
    <echo level="info">svn commit --username dameron -m "build ${version}"</echo>
    <echo level="info">svn copy --username dameron http://smi-protege.stanford.edu/repos/protege/protege-script-console/trunk http://smi-protege.stanford.edu/repos/protege/protege-script-console/tags/build-${version} -m "Release ${version}"</echo>
    <echo level="info">cd -</echo>
    <echo level="info">rm -rf /tmp/jnk</echo>
  </target>

  <target name="updateSubversionRepository" description="Updates the svn repository on smi-protege" depends="release, showUpdateSubversionRepository" if="correctJVM">
        <delete includeemptydirs="true">
          <fileset dir="edu.stanford.smi.protege.script" includes="**/*"/>
        </delete>
        <copy file="${jar}/${projectName}.jar" tofile="edu.stanford.smi.protege.script/${projectName}.jar"/>
        <copy todir="edu.stanford.smi.protege.script/">
          <fileset dir="${lib}" includes="*.jar"/>
        </copy>
        <copy todir="edu.stanford.smi.protege.script/">
          <fileset dir="${info}" includes="*"/>
        </copy>
        <copy file="${web}/doap.rdf" tofile="edu.stanford.smi.protege.script/doap.rdf"/>
  	<exec executable="svn">
 		<arg line="status" />
	</exec>
  	<exec executable="svn">
 		<arg line="commit" />
 		<arg line="--username" />
		<arg line="dameron" />
 		<arg line="-m" />
		<arg line='"build ${version}"' />
	</exec>
  	<exec executable="svn">
 		<arg line="copy" />
 		<arg line="--username" />
		<arg line="dameron" />
 		<arg line="http://smi-protege.stanford.edu/repos/protege/protege-script-console/trunk" />
		<arg line="http://smi-protege.stanford.edu/repos/protege/protege-script-console/tags/build-${version}" />
 		<arg line="-m" />
		<arg line='"Release ${version}"' />
	</exec>
  	<echo level="info">DONE.</echo>
  </target>

  <target name="help" description="Help" >
    <echo>ant updateWebSite: prepares a new release and upload it to the web site</echo>
    <echo>ant showUpdateSubversionRepository: Passively shows the commands to invoke for updating the svn repository on smi-protege</echo>
    <echo>ant updateSubversionRepository: Updates the svn repository on smi-protege</echo>
    <echo>ant release: prepares a clean new release (generates jar files, web pages, etc.)</echo>
    <echo>ant jar: prepares the bin, doc and src jar files in ${jar} the directory</echo>
    <echo>ant documentation: genereates the javadocs in the ${doc} directory</echo>
    <echo>ant compile: compiles the files found in ${src} into ${build}</echo>
  </target>

  <!-- standard protege ant targets -->

  <target name="update" depends="jar">
      <copy file="${jar}/${projectName}.jar"
            tofile="${localenv.PROTEGE_HOME}/plugins/edu.stanford.smi.protege.script/${projectName}.jar"/>
  </target>

  <target name="install" depends="release"/>


</project>

CVS-SVN admin

Powered by ViewCVS 1.0-dev
(Powered by Apache)

ViewCVS and CVS Help