NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [netcdf-java] Java-NetCDF in Maven repository?


Jon Blower wrote:
> Hi all,
> 
> Does anyone know if the Java-NetCDF libraries (particularly version 4)
> are in a Maven repository anywhere?  If they are not, I could have a
> go at creating one, since I think it would help one of the projects
> I'm working on (perhaps it would be useful to others too).  But in
> order to do this I'd need someone (John C perhaps) to send a
> definitive list of nj4's dependencies, and what they are needed for.
> 
> Cheers, Jon
> 

Hi Jon:

Theres been various interest in the past,including this from sometime in 2007:

"Lorenzo Bigagli has offered a maven build for Netcdf-Java. I havent had a 
chance to try it but if anyone else can, please do so:
http://ulisse.pin.unifi.it:8080/archiva/browse/essi-unidata/netcdf-java";

whose link still seems to work. you can also email bigagli@xxxxxxxxxxx

Anyway the set of dependencies for netcdf-java 4.0.39 can be found in the ant 
build file (attached), and also at:

http://www.unidata.ucar.edu/software/netcdf-java/reference/JarDependencies.html

Note that in this list from the build.xml:

      <fileset dir="${lib.dir}">
        <include name="release/${bufrTables.jar}"/>
        <include name="release/${grib.jar}"/>
        <include name="external/${jdom.jar}"/>
        <include name="external/${jpeg2000.jar}"/>
        <include name="external/${httpclient.jar}"/>
        <include name="external/${http-codec.jar}"/>
        <include name="external/${http-logging.jar}"/>
        <include name="external/${loggingAPI.jar}"/>
        <include name="external/${logging-minimal.jar}"/>
        <include name="release/${opendap.jar}"/>
        <include name="release/${visadNoDods.jar}"/>
      </fileset>

jars from "release" directory are ones that we build, and "external" are from 
external places. 

Let me know what else I can tell you....


<?xml version="1.0"?>
<project name="cdm" default="makeMain" basedir=".">
  <property name="release.version" value="4.0"/>
  <property name="minor" value="39" />
  <!-- "build.number" is already set for TeamCity builds. -->
  <tstamp>
    <format property="build.time.number" pattern="yyyyMMdd.HHmm" 
timezone="GMT"/>
  </tstamp>
  <condition property="release.version.minor"
             value="${release.version}.${minor}.${build.number}"
             else="${release.version}.${minor}.${build.time.number}" >
    <isset property="build.number" />
  </condition>
  <property name="build.debug" value="on"/>
  <property name="build.release" value="false"/>
  <tstamp>
    <format property="buildtime" pattern="yyyy-MM-dd HH:mm:ss" timezone="GMT"/>
  </tstamp>
  <tstamp>
    <format property="buildtime2" pattern="yyyy-MM-dd'T'HH.mm.ss" 
timezone="GMT"/>
  </tstamp>

  <!-- Load environment and user properties. -->
  <property environment="env"/>
  <property file="${user.home}/build.properties"/>

  <!-- Directories for releasing to FTP or WWW site, defaults are John's.
       Override by adding to build.properties file.
    -->
  <property name="uni.ftp.dir" value="O:"/>
  <property name="uni.www.dir" value="Z:"/>

  <property name="root.dir" location="${basedir}"/>
  <property name="src.dir" location="${root.dir}/src/main/java"/>
  <property name="timingSrc.dir" location="${root.dir}/src/timing/java"/>
  <property name="commonSrc.dir" location="${root.dir}/../common/src/java"/>
  <property name="resources.dir" location="${root.dir}/src/main/resources"/>
  <property name="doc.dir" location="${root.dir}/doc"/>
  <property name="lib.dir" location="${root.dir}/../lib"/>

  <property name="build.dir" value="${root.dir}/target"/>
  <property name="build.classes.dir" value="${build.dir}/classes"/>
  <property name="javadoc.dir" value="${build.dir}/javadoc"/>
  <property name="javadocAll.dir" value="${build.dir}/javadocAll"/>

  <property name="release.library.dir" 
value="${uni.ftp.dir}/pub/netcdf-java/v${release.version}/"/>
  <property name="release.doc.dir" 
value="${uni.ftp.dir}/pub/netcdf-java/v${release.version}/"/>
  <property name="release.html.dir" 
value="${uni.www.dir}/content/software/netcdf-java/v${release.version}/"/>
  <property name="release.schema.dir" value="${uni.www.dir}/content/schema"/>
  <property name="release.javadoc.dir"
            
value="${uni.www.dir}/content/software/netcdf-java/v${release.version}/javadoc/"/>
  <property name="release.javadocAll.dir"
            
value="${uni.www.dir}/content/software/netcdf-java/v${release.version}/javadocAll/"/>
  <property name="webstart_dir" 
value="${uni.www.dir}/content/software/netcdf-java/v${release.version}/webstart"/>

  <!-- property name="bzip2.jar" value="bzip2.jar"/ -->
  <!-- property name="gnu-regexp.jar" value="gnu-regexp-1.1.4.jar"/ -->
  <property name="bufrTables.jar" value="bufrTables-1.5.jar"/>
  <property name="ehcache.jar" value="ehcache-1.6.0-beta3.jar"/>
  <property name="grib.jar" value="grib-6.0.jar"/>
  <property name="httpclient.jar" value="commons-httpclient-3.1.jar"/>
  <property name="http-logging.jar" value="commons-logging-1.1.jar"/>
  <property name="http-codec.jar" value="commons-codec-1.3.jar"/>
  <property name="jdom.jar" value="jdom.jar"/>
  <property name="jgoodies.jar" value="forms-1.0.7.jar"/>
  <property name="jpeg2000.jar" value="jpeg2000.jar"/>
  <property name="junit.jar" value="junit.jar"/>
  <property name="loggingAPI.jar" value="slf4j-api-1.5.6.jar"/>
  <property name="logging-minimal.jar" value="slf4j-jdk14-1.5.6.jar"/>
  <property name="logging-maximal.jar" value="slf4j-log4j12-1.5.6.jar"/>
  <property name="log4j.jar" value="log4j-1.2.15.jar"/>
  <property name="lucene.jar" value="lucene.jar"/>
  <property name="opendap.jar" value="opendap-2.1.jar"/>
  <property name="resourcesOptional.jar" value="resourcesOptional.jar"/>
  <property name="spring.jar" value="spring-2.5.jar"/>
  <property name="stax.jar" value="stax-api-1.0.1.jar"/>
  <property name="visadNoDods.jar" value="visadNoDods.jar"/>

  <!-- source -->
  <path id="sourcepath">
    <pathelement location="${src.dir}"/>
    <pathelement location="${commonSrc.dir}"/>
  </path>

  <!-- Libraries -->
  <fileset id="compile.libraries" dir="${lib.dir}">
    <include name="external/${ehcache.jar}"/>
    <include name="release/${grib.jar}"/>
    <include name="release/${opendap.jar}"/>
    <include name="external/${httpclient.jar}"/>
    <include name="external/${jdom.jar}"/>
    <include name="external/${loggingAPI.jar}"/>
    <include name="release/${visadNoDods.jar}"/>
    <include name="external/${stax.jar}"/>
  </fileset>

  <fileset id="compileFromSrc.libraries" dir="${root.dir}">
    <include name="lib/${ehcache.jar}"/>
    <include name="lib/${grib.jar}"/>
    <include name="lib/${opendap.jar}"/>
    <include name="lib/${httpclient.jar}"/>
    <include name="lib/${jdom.jar}"/>
    <include name="lib/${loggingAPI.jar}"/>
    <include name="lib/${visadNoDods.jar}"/>
    <include name="lib/${jgoodies.jar}"/>
    <include name="lib/${lucene.jar}"/>
    <include name="lib/${spring.jar}"/>
    <include name="lib/${stax.jar}"/>
  </fileset>

  <path id="compile.classpath">
    <fileset refid="compile.libraries"/>
  </path>

  <path id="compileFromSrc.classpath">
    <fileset refid="compileFromSrc.libraries"/>
  </path>

  <fileset id="runtime.libraries" dir="${lib.dir}">
    <include name="release/${bufrTables.jar}"/>
    <include name="external/${http-codec.jar}"/>
    <include name="external/${http-logging.jar}"/>
    <include name="external/${logging-minimal.jar}"/>
    <include name="external/${jpeg2000.jar}"/>
  </fileset>

  <path id="runtime.classpath">
    <fileset refid="compile.libraries"/>
    <fileset refid="runtime.libraries"/>
  </path>

  <!-- LOOK can we generate with pathconvert? -->
  <property name="Class-Path"
            value="${jgoodies.jar} ${grib.jar} ${jdom.jar} ${opendap.jar} 
${http-codec.jar} ${httpclient.jar} ${http-logging.jar} ${loggingAPI.jar} 
${logging-minimal.jar} ${jpeg2000.jar} ${resourcesOptional.jar} ${spring.jar} 
${visadNoDods.jar}"/>
  <property name="ClassPath-CommandLine"
            
value="lib/${grib.jar}:lib/${jdom.jar}:lib/${httpclient.jar}:lib/${http-codec.jar}:lib/${http-logging.jar}:lib/${jpeg2000.jar}:lib/${loggingAPI.jar}:lib/${logging-minimal.jar}:lib/${jgoodies.jar}:lib/${spring.jar}:lib/${visadNoDods.jar}"/>

  <target name="test-pathconvert">
    <echo>Class-Path=${Class-Path}</echo>

    <pathconvert property="runtime.classpath.prop" refid="runtime.classpath" 
pathsep=" ">
      <mapper type="flatten"/>
    </pathconvert>
    <echo>runtime.classpath.prop=${runtime.classpath.prop}</echo>
  </target>

  <!-- targets -->
  <target name="init">
    <mkdir dir="${build.classes.dir}"/>
    <echo message="Initialize ${ant.project.name}"/>
  </target>

  <target name="clean" description="Deletes all files that are generated by the 
build.">
    <delete dir="${build.dir}" failonerror="false"/>
  </target>

  <target name="release-settings">
    <condition property="build.debuglevel" value="lines">
      <istrue value="${build.release}"/>
    </condition>
    <property name="build.debuglevel" value="lines,vars,source"/>
    <!-- echo>release.build=${release.build}</echo>
       <echo>build.debuglevel=${build.debuglevel}</echo -->
  </target>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <!-- core library -->
  <patternset id="sources-core">
    <include name="ucar/ma2/*.java"/>
    <include name="ucar/nc2/*.java"/>
    <include name="ucar/nc2/iosp/netcdf3/N3iosp.java"/>
    <include name="ucar/nc2/util/DebugFlagsImpl.java"/>
    <include name="ucar/nc2/util/TimeSocket.java"/>
  </patternset>

  <target name="compile-core" depends="release-settings" description="library 
compile">
    <delete dir="${build.classes.dir}" failonerror="false"/>
    <mkdir dir="${build.classes.dir}"/>

    <javac destdir="${build.classes.dir}" debug="${build.debug}" 
debuglevel="${build.debuglevel}"
           includeAntRuntime="false" source="1.5" target="1.5">
      <src refid="sourcepath"/>
      <patternset refid="sources-core"/>
      <classpath refid="compile.classpath"/>
    </javac>
  </target>

  <!-- make core library jars -->
  <property name="core.dir" value="${build.dir}/core"/>
  <property name="jarCore" value="ncCore-${release.version}.jar"/>
  <target name="makeCore" depends="compile-core" description="make core library 
jar">
    <delete dir="${core.dir}" failonerror="false"/>
    <mkdir dir="${core.dir}"/>
    <unzip dest="${core.dir}">
      <fileset dir="${lib.dir}">
        <include name="external/${loggingAPI.jar}"/>
        <include name="external/${logging-minimal.jar}"/>
      </fileset>
    </unzip>

    <copy file="README.TEMPLATE" tofile="${build.dir}/README" overwrite="true">
      <filterset>
        <filter token="BUILDTIME" value="${buildtime}"/>
        <filter token="VERSION" value="${release.version}"/>
        <filter token="VERSION.MINOR" value="${release.version.minor}"/>
      </filterset>
    </copy>

    <copy file="CHANGES.txt" tofile="${build.dir}/CHANGES" overwrite="true">
      <filterset>
        <filter token="BUILDTIME" value="${buildtime}"/>
        <filter token="VERSION" value="${release.version}"/>
        <filter token="VERSION.MINOR" value="${release.version.minor}"/>
      </filterset>
    </copy>

    <jar jarfile="${build.dir}/${jarCore}" index="true">
      <fileset dir="${build.classes.dir}"/>
      <fileset dir="${build.dir}" includes="README"/>
      <fileset dir="${build.dir}" includes="CHANGES"/>
      <fileset dir="${core.dir}"/>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" 
value="NetCDF-Java-MinimalLibrary"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>

    </jar>
  </target>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <!-- main library  -->

  <patternset id="sources">
    <include name="thredds/catalog/*.java"/>
    <include name="thredds/catalog/parser/jdom/*.java"/>
    <include name="thredds/catalog2/**/*.java"/>
    <include name="thredds/filesystem/**/*.java"/>
    <include name="thredds/util/**/*.java"/>
    <!-- The following includes, to ***, are needed by TDS. -->
    <include name="thredds/catalog/crawl/*.java"/>
    <include name="thredds/catalog/dl/*.java"/>
    <include name="thredds/catalog/query/*.java"/>
    <include name="thredds/cataloggen/**/*.java"/>
    <include name="thredds/crawlabledataset/**/*.java"/>
    <include name="thredds/wcs/**/*.java"/>
    <!-- *** -->
    <include name="ucar/**/*.java"/>
    <exclude name="ucar/nc2/dataset/grid/*"/>
    <exclude name="ucar/nc2/jni/**"/>
    <exclude name="ucar/nc2/util/reflect/*"/>
    <!--exclude name="ucar/unidata/geoloc/ogc/*"/--> <!-- Also needed by TDS. 
-->
    <!-- include name="dods/**/*.java"/ -->
  </patternset>

  <target name="compile" depends="release-settings" description="library 
compile">
    <delete dir="${build.classes.dir}" failonerror="false"/>
    <mkdir dir="${build.classes.dir}"/>

    <javac destdir="${build.classes.dir}" debug="${build.debug}" 
debuglevel="${build.debuglevel}"
           includeAntRuntime="false" source="1.5" target="1.5">
      <src refid="sourcepath"/>
      <patternset refid="sources"/>
      <classpath refid="compile.classpath"/>
    </javac>
  </target>

  <!-- make library jars -->
  <property name="jarMain" value="netcdf-${release.version}.jar"/>
  <target name="makeMain" depends="compile" description="make library jars">
    <copy file="README.TEMPLATE" tofile="${build.dir}/README" overwrite="true">
      <filterset>
        <filter token="BUILDTIME" value="${buildtime}"/>
        <filter token="VERSION" value="${release.version}"/>
        <filter token="VERSION.MINOR" value="${release.version.minor}"/>
      </filterset>
    </copy>

    <copy file="CHANGES.txt" tofile="${build.dir}/CHANGES" overwrite="true">
      <filterset>
        <filter token="BUILDTIME" value="${buildtime}"/>
        <filter token="VERSION" value="${release.version}"/>
        <filter token="VERSION.MINOR" value="${release.version.minor}"/>
      </filterset>
    </copy>

    <jar jarfile="${build.dir}/${jarMain}" index="true">
      <fileset dir="${build.classes.dir}">
        <exclude name="thredds/catalog2/**"/>
        <!-- exclude name="thredds/wcs/**"/ -->
        <!-- exclude name="ucar/unidata/geoloc/ogc/**"/ -->
      </fileset>
      <fileset dir="${build.dir}" includes="README"/>
      <fileset dir="${build.dir}" includes="CHANGES"/>

      <fileset dir="${resources.dir}">
        <include name="resources/nj22/**"/>
        <include name="resources/thredds/**"/>
      </fileset>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="NetCDF-Java-Library"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>

    </jar>

  </target>

  <property name="jarMainComplete" value="netcdfAll-${release.version}.jar"/>
  <property name="main.dir" value="${build.dir}/main"/>
  <target name="makeMainComplete" depends="makeMain" description="make 
netcdfAll jar">
    <delete dir="${main.dir}" failonerror="false"/>
    <mkdir dir="${main.dir}"/>
    <unzip dest="${main.dir}">
      <fileset dir="${lib.dir}">
        <include name="release/${bufrTables.jar}"/>
        <include name="release/${grib.jar}"/>
        <include name="external/${jdom.jar}"/>
        <include name="external/${jpeg2000.jar}"/>
        <include name="external/${httpclient.jar}"/>
        <include name="external/${http-codec.jar}"/>
        <include name="external/${http-logging.jar}"/>
        <include name="external/${loggingAPI.jar}"/>
        <include name="external/${logging-minimal.jar}"/>
        <include name="release/${opendap.jar}"/>
        <include name="release/${visadNoDods.jar}"/>
      </fileset>
    </unzip>
    <unzip dest="${main.dir}">
      <fileset dir="${build.dir}">
        <include name="${jarMain}"/>
      </fileset>
    </unzip>

    <jar jarfile="${build.dir}/${jarMainComplete}" index="true" 
duplicate="preserve">
      <fileset dir="${main.dir}"/>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="NetCDF-Java-Library 
Complete"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>
  </target>

  <property name="testJar.dir" value="${build.dir}/testJar"/>
  <target name="makeTestJar" description="make test jar">
    <delete dir="${testJar.dir}" failonerror="false"/>
    <mkdir dir="${testJar.dir}"/>
    <unzip dest="${testJar.dir}">
      <fileset dir="${lib.dir}">
        <include name="external/${ehcache.jar}"/>
        <include name="external/${loggingAPI.jar}"/>
        <include name="external/${logging-minimal.jar}"/>
      </fileset>
    </unzip>
    <unzip dest="${testJar.dir}">
      <fileset dir="${build.dir}">
        <include name="${jarMain}"/>
      </fileset>
    </unzip>

    <jar jarfile="${build.dir}/test.jar" index="true" duplicate="preserve">
      <fileset dir="${testJar.dir}"/>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="test Jar"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>
  </target>

  <property name="zip.dir" value="${build.dir}/zip"/>
  <property name="uiZip.dir" value="${build.dir}/uiZip"/>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <!-- idv library  -->

  <property name="jarIdv" value="ncIdv.jar"/>
  <property name="idv.dir" value="${build.dir}/idv"/>
  <target name="makeIDVjar" depends="makeMain" description="create jar for idv">
    <mkdir dir="${idv.dir}"/>
    <unzip dest="${idv.dir}">
      <fileset dir="${lib.dir}">
        <include name="release/${bufrTables.jar}"/>
        <include name="release/${grib.jar}"/>
        <include name="external/${jdom.jar}"/>
        <include name="external/${httpclient.jar}"/>
        <include name="external/${http-codec.jar}"/>
        <include name="external/${http-logging.jar}"/>
        <include name="external/${loggingAPI.jar}"/>
        <include name="external/${logging-minimal.jar}"/>
        <include name="release/${opendap.jar}"/>
      </fileset>
    </unzip>
    <unzip dest="${idv.dir}">
      <fileset dir="${build.dir}">
        <include name="${jarMain}"/>
      </fileset>
    </unzip>

    <jar jarfile="${build.dir}/${jarIdv}" index="true" duplicate="preserve">
      <fileset dir="${build.dir}" includes="README"/>
      <fileset dir="${build.dir}" includes="CHANGES"/>
      <fileset dir="${idv.dir}"/>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="NetCDF-Java-IDV-library"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>
  </target>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <!-- source release -->

  <property name="ncSrcRelease.jar" value="ncSrc-${release.version}.zip"/>
  <target name="makeSrc-CDM" description="create CDM source release">

    <jar jarfile="${build.dir}/${ncSrcRelease.jar}" index="true" 
duplicate="preserve">
      <fileset dir="${root.dir}/..">
        <include name="cdm/build.xml"/>
        <include name="cdm/README.TEMPLATE"/>
        <include name="cdm/src/main/**"/>
        <include name="common/src/**"/>
        <include name="lib/external/**"/>
        <include name="lib/release/**"/>
        <include name="ui/src/main/**"/>
      </fileset>
      
      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime2}"/>
        <attribute name="Implementation-Title" value="netCDF-Java/CDM and 
ToolsUI Source"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>

  </target>

  <property name="fullSrc.jar" value="threddsSrc-${release.version.minor}.jar"/>
  <target name="makeSrc-Full" description="make nj22/tds full source jar = 
threddsSrc-${release.version.minor}.jar">
    <jar jarfile="${build.dir}/${fullSrc.jar}" index="true" 
duplicate="preserve">
      <fileset dir="${root.dir}/..">
        <include name="cdm/src/main/**"/>
        <include name="common/src/**"/>
        <include name="lib/external/**"/>
        <include name="lib/release/**"/>
        <include name="ui/src/main/**"/>
        <include name="tds/src/main/**"/>
      </fileset>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime2}"/>
        <attribute name="Implementation-Title" value="THREDDS Source (CDM, TDS, 
ToolsUI)"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>

  </target>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <!-- get rid of dods stuff in visad.jar -->

  <property name="visad.jar" value="C:/dev/lib/visad/visad.jar"/>
  <!-- checkout visad.jar from cvs -->
  <property name="visadNoDods.tempdir" location="C:/dev/lib/visad/temp/"/>
  <target name="makeVisadNoDods" description="remove dods from visad">
    <delete dir="${visadNoDods.tempdir}" failonerror="false"/>
    <mkdir dir="${visadNoDods.tempdir}"/>
    <unzip dest="${visadNoDods.tempdir}">
      <fileset file="${visad.jar}"/>
    </unzip>

    <delete dir="${visadNoDods.tempdir}/dods" failonerror="true"/>
    <delete dir="${visadNoDods.tempdir}/gnu/regexp" failonerror="true"/>
    <delete dir="${visadNoDods.tempdir}/HTTPClient" failonerror="true"/>
    <delete dir="${visadNoDods.tempdir}/ucar" failonerror="true"/>

    <jar jarfile="${lib.dir}/release/${visadNoDods.jar}" index="true" 
duplicate="preserve">
      <fileset dir="${visadNoDods.tempdir}"/>
    </jar>
  </target>

  <!-- temp
  <property name="makeViewerJar.tempdir" location="C:/TEMP/viewerJar/"/>
  <target name="makeViewerJar">
    <!- delete dir="${makeViewerJar.tempdir}" failonerror="false"/>
    <mkdir dir="${makeViewerJar.tempdir}"/>
    <mkdir dir="${makeViewerJar.tempdir}/saidinViewer"/>

    <copy todir="${makeViewerJar.tempdir}/saidinViewer" overwrite="true" 
preservelastmodified="true">
      <fileset dir="C:/dev/thredds/tds/target/classes/saidinViewer"/>
    </copy ->

    <jar jarfile="${lib.dir}/external/viewerJar.jar" index="true" 
duplicate="preserve">
      <fileset dir="${makeViewerJar.tempdir}"/>
    </jar>
  </target -->

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <!-- make javadoc -->
  <property name="jarJavadoc" value="javadoc-${release.version}.jar"/>
  <target name="javadoc" description="make the javadocs">
    <mkdir dir="${javadoc.dir}"/>
    <javadoc Doctitle="NetCDF-Java ${release.version} API" Use="true" 
Windowtitle="NetCDF-Java ${release.version} Public API"
             maxmemory="256m" sourcepathref="sourcepath" 
destdir="${javadoc.dir}" public="true" source="1.5">
      <classpath refid="compile.classpath"/>

      <package name="thredds.catalog"/>
      <package name="ucar.ma2"/>
      <package name="ucar.nc2"/>
      <package name="ucar.nc2.constants"/>
      <package name="ucar.nc2.dataset"/>
      <package name="ucar.nc2.dataset.conv"/>
      <package name="ucar.nc2.dataset.transform"/>
      <package name="ucar.nc2.dt"/>
      <package name="ucar.nc2.ft"/>
      <package name="ucar.nc2.units"/>
      <package name="ucar.nc2.util"/>
      <package name="ucar.unidata.geoloc"/>
      <package name="ucar.unidata.geoloc.projection"/>
      <package name="ucar.unidata.geoloc.vertical"/>
      <package name="ucar.unidata.io"/>
      <package name="ucar.unidata.util"/>
    </javadoc>

    <jar jarfile="${build.dir}/${jarJavadoc}" index="true" duplicate="preserve">
      <fileset dir="${javadoc.dir}"/>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="Public Javadoc for 
NetCDF-Java-library "/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>
  </target>


  <property name="jarJavadocAll" value="javadocAll-${release.version}.jar"/>
  <target name="javadocAll" description="make all javadocs">
    <mkdir dir="${javadocAll.dir}"/>
    <javadoc Doctitle="NetCDF-Java ${release.version} API" Use="true" 
Windowtitle="NetCDF-Java ${release.version} Public and Private API"
             maxmemory="256m" sourcepathref="sourcepath" 
destdir="${javadocAll.dir}" protected="true" source="1.5">
      <classpath refid="compile.classpath"/>
      <classpath refid="compileUI.classpath"/>
      <package name="dods.*"/>
      <package name="thredds.*"/>
      <package name="ucar.*"/>
      <excludepackage name="ucar/nc2/dataset/grid"/>
      <excludepackage name="ucar/nc2/stream/**"/>
      <excludepackage name="ucar/nc2/jni"/>
      <excludepackage name="ucar/nc2/jni/**"/>
      <excludepackage name="ucar/nc2/util/reflect"/>
      <excludepackage name="thredds/catalog2/**"/>
      <!-- excludepackage name="ucar/unidata/geoloc/ogc"/>
      <excludepackage name="thredds/wcs/**" / -->
    </javadoc>

    <jar jarfile="${build.dir}/${jarJavadocAll}" index="true" 
duplicate="preserve">
      <fileset dir="${javadocAll.dir}"/>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="All Javadoc for 
NetCDF-Java-library "/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>
  </target>

  <!-- release user manual -->
  <target name="releaseDoc" description="Release user manual">
    <copy todir="${release.doc.dir}" overwrite="true">
      <fileset dir="${doc.dir}" 
includes="NetcdfJavaUserManual-${release.version}.doc"/>
      <fileset dir="${doc.dir}" 
includes="NetcdfJavaUserManual-${release.version}.pdf"/>
    </copy>
    <copy todir="${release.html.dir}" overwrite="true">
      <fileset dir="${doc.dir}" 
includes="NetcdfJavaUserManual-${release.version}.htm"/>
    </copy>
  </target>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <!-- UI -->
  <property name="srcUI.dir" location="${root.dir}/../ui/src/main/java"/>
  <property name="resourcesUI.dir" 
location="${root.dir}/../ui/src/main/resources"/>

  <fileset id="compileUI.libraries" dir="${lib.dir}">
    <include name="external/${jgoodies.jar}"/>
    <include name="external/${lucene.jar}"/>
    <include name="external/${spring.jar}"/>
  </fileset>

  <path id="compileUI.classpath">
    <fileset refid="compileUI.libraries"/>
  </path>

  <path id="sourcepathUI">
    <pathelement location="${src.dir}"/>
    <pathelement location="${srcUI.dir}"/>
    <pathelement location="${commonSrc.dir}"/>
  </path>

  <target name="compileUI" depends="init, release-settings" 
description="toolsUI compile">
    <pathconvert property="sourcepath.prop" refid="sourcepath" 
targetos="windows"/>
    <echo>sourcepath=${sourcepath.prop}</echo>

    <javac destdir="${build.classes.dir}" debug="${build.debug}" 
debuglevel="${build.debuglevel}"
           includeAntRuntime="false" source="1.5" target="1.5">
      <src refid="sourcepathUI"/>

      <patternset refid="sources"/>
      <patternset>
        <include name="ucar/nc2/ui/**/*.java"/>
        <include name="thredds/monitor/*.java"/>

        <exclude name="ucar/nc2/thredds/monitor/**" />

      </patternset>

      <classpath refid="compile.classpath"/>
      <classpath refid="compileUI.classpath"/>
    </javac>

    <!-- Setup runToolsUI script -->
    <pathconvert property="toolsUI.runtime.classpath.prop">
      <path>
        <path location="${build.classes.dir}"/>
        <path location="${resources.dir}"/>
        <path location="${resourcesUI.dir}"/>
        <fileset refid="compile.libraries"/>
        <fileset refid="compileUI.libraries"/>
        <fileset refid="runtime.libraries"/>
      </path>
    </pathconvert>

    <!-- todo Should move template file to src/main/scripts/runToolsUI.sh -->
    <copy file="${root.dir}/runToolsUI.TEMPLATE"
          tofile="${build.dir}/runToolsUI" overwrite="true">
      <filterset>
        <filter token="CLASSPATH" value="${toolsUI.runtime.classpath.prop}"/>
      </filterset>
    </copy>

  </target>

  <property name="jarUI" value="netcdfUI-${release.version}.jar"/>
  <target name="makeUI" depends="compile, compileUI" description="make toolsUI 
jar">
    <copy file="README.TEMPLATE" tofile="${build.dir}/README" overwrite="true">
      <filterset>
        <filter token="BUILDTIME" value="${buildtime}"/>
        <filter token="VERSION" value="${release.version}"/>
        <filter token="VERSION.MINOR" value="${release.version.minor}"/>
      </filterset>
    </copy>

    <copy file="CHANGES.txt" tofile="${build.dir}/CHANGES" overwrite="true">
      <filterset>
        <filter token="BUILDTIME" value="${buildtime}"/>
        <filter token="VERSION" value="${release.version}"/>
        <filter token="VERSION.MINOR" value="${release.version.minor}"/>
      </filterset>
    </copy>

    <!-- Ant jar task with index="true" will create JARs hiding any Class-Path: 
... entries ! -->
    <jar jarfile="${build.dir}/${jarUI}" duplicate="preserve">
      <fileset dir="${build.dir}" includes="README"/>
      <fileset dir="${build.dir}" includes="CHANGES"/>
      <fileset dir="${build.classes.dir}"/>
      <zipfileset dir="${resources.dir}/resources" prefix="resources"/>
      <zipfileset dir="${resourcesUI.dir}/resources" prefix="resources"/>

      <manifest>
        <attribute name="Main-Class" value="ucar.nc2.ui.ToolsUI"/>
        <attribute name="Class-Path" value="${Class-Path}"/>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="NetCDF-Java-UITools"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>

      <indexjars>
        <path refid="compile.classpath"/>
        <path refid="compileUI.classpath"/>
        <pathelement location="${lib.dir}/release/${resourcesOptional.jar}"/>
      </indexjars>

    </jar>

  </target>

  <property name="ncAll" value="netcdfAll-${release.version}.zip"/>
  <target name="makeAllzip" depends="makeMain, makeUI" description="create 
netcdfAll zip file">
    <copy file="${build.dir}/${jarUI}" todir="${zip.dir}" overwrite="true" 
preservelastmodified="true"/>
    <copy file="${build.dir}/${jarMain}" todir="${zip.dir}" overwrite="true" 
preservelastmodified="true"/>

    <!--gather jars for the application and make netcdfAll.zip -->
    <copy todir="${zip.dir}" flatten="true" overwrite="true" 
preservelastmodified="true">
      <fileset refid="compile.libraries"/>
      <fileset refid="compileUI.libraries"/>
      <fileset refid="runtime.libraries"/>
      <fileset file="${lib.dir}/release/${resourcesOptional.jar}"/>
      <fileset file="${lib.dir}/external/${log4j.jar}"/>
      <fileset file="${lib.dir}/external/${logging-maximal.jar}"/>
    </copy>
    <zip destfile="${build.dir}/${ncAll}" basedir="${zip.dir}"/>

  </target>

  <property name="toolsUI" value="toolsUI-${release.version}.jar"/>
  <target name="makeToolsUI" depends="makeMain, makeUI" description="create 
toolsUI jar file">
    <!--unzip all so we can make uiAll -->
    <mkdir dir="${uiZip.dir}"/>
    <unzip dest="${uiZip.dir}">
      <fileset refid="compile.libraries"/>
      <fileset refid="compileUI.libraries"/>
      <fileset refid="runtime.libraries"/>
      <fileset file="${build.dir}/${jarUI}"/>
      <fileset file="${lib.dir}/release/${resourcesOptional.jar}"/>
    </unzip>

    <jar jarfile="${build.dir}/${toolsUI}" index="true" duplicate="preserve">
      <fileset dir="${build.dir}" includes="README"/>
      <fileset dir="${build.dir}" includes="CHANGES"/>
      <fileset dir="${uiZip.dir}"/>

      <manifest>
        <attribute name="Main-Class" value="ucar.nc2.ui.ToolsUI"/>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="NetCDF-Java-ToolsUI"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>
    </jar>

  </target>

  <target name="makeAll" depends="makeCore, makeMain, makeMainComplete, makeUI, 
makeAllzip, makeToolsUI" description="create netcdfAll zip file"/>

  <property name="jarResourcesOptional" 
value="resourcesOptional-${release.version}.jar"/>
  <target name="makeResourcesOptional" description="make resourcesOptional.jar">

    <jar jarfile="${build.dir}/${jarResourcesOptional}" index="true" 
duplicate="preserve">
      <zipfileset dir="${resources.dir}/optional" prefix="optional"/>

      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Built-On" value="${buildtime}"/>
        <attribute name="Implementation-Title" value="NetCDF-Java Optional 
Resources"/>
        <attribute name="Implementation-Version" 
value="${release.version.minor}"/>
        <attribute name="Implementation-Vendor" value="UCAR/Unidata"/>
      </manifest>

    </jar>

  </target>

  <target name="releaseResourcesOptionalInternal" 
depends="makeResourcesOptional">
    <copy todir="${lib.dir}/release" overwrite="true" 
preservelastmodified="true">
      <fileset dir="${build.dir}" includes="${jarResourcesOptional}"/>
    </copy>
  </target>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <target name="dist" depends="makeAll, makeIDVjar, makeSrc-CDM, javadoc, 
javadocAll"
          description="create a full distribution"/>

  <!-- release library -->
  <target name="releaseInternal" depends="makeMain" description="internal 
release to lib">
    <copy todir="${lib.dir}/release" overwrite="true">
      <fileset dir="${build.dir}" includes="${jarMain}"/>
    </copy>
  </target>

  <!-- release library -->
  <target name="release" description="Release library and source jar files to 
release directory: do 'ant dist' first">
    <copy todir="${release.library.dir}" overwrite="true">
      <fileset dir="${build.dir}" includes="${jarCore}"/>
      <fileset dir="${build.dir}" includes="${jarMain}"/>
      <fileset dir="${build.dir}" includes="${jarMainComplete}"/>
      <fileset dir="${build.dir}" includes="${ncSrcRelease.jar}"/>
      <fileset dir="${build.dir}" includes="${jarIdv}"/>
      <fileset dir="${build.dir}" includes="${jarUI}"/>
      <fileset dir="${build.dir}" includes="${toolsUI}"/>
      <fileset dir="${build.dir}" includes="${ncAll}"/>
      <fileset dir="${build.dir}" includes="${jarJavadoc}"/>
      <fileset dir="${build.dir}" includes="${jarJavadocAll}"/>
    </copy>

    <checksum>
      <fileset dir="${release.library.dir}">
        <include name="*.jar"/>
        <include name="*.zip"/>
      </fileset>
    </checksum>

    <copy todir="${lib.dir}/release" overwrite="true">
      <fileset dir="${build.dir}" includes="${jarMain}"/>
      <fileset dir="${build.dir}" includes="${jarIdv}"/>
    </copy>

    <copy todir="${release.javadoc.dir}" overwrite="true">
      <fileset dir="${javadoc.dir}"/>
    </copy>
    <copy todir="${release.javadocAll.dir}" overwrite="true">
      <fileset dir="${javadocAll.dir}"/>
    </copy>
    <copy todir="${release.html.dir}" overwrite="true">
      <fileset file="${build.dir}/README"/>
      <fileset file="${build.dir}/CHANGES"/>
    </copy>


  </target>

  <target name="releaseInvCatSchema" description="Release InvCatalog schema to 
web.">
    <copy todir="${release.schema.dir}/thredds" overwrite="true">
      <fileset 
file="${resources.dir}/resources/thredds/schemas/InvCatalog.1.0.2.xsd"/>
    </copy>
  </target>

  <!-- netcdfUI webstart release -->
  <target name="releaseWebstart" description="make webstart release; do dist or 
release first">
    <signjar alias="idv" jar="${build.dir}/${jarUI}" keystore="${keystore}" 
signedjar="${webstart_dir}/netcdfUI.jar"
             storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/release/${bufrTables.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/bufrTables.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/release/${grib.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/grib.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${jdom.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/jdom.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${jgoodies.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/jgoodies.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${jpeg2000.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/jpeg2000.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${httpclient.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/httpclient.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${http-codec.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/codec.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${http-logging.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/httplogging.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${loggingAPI.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/loggingAPI.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${logging-minimal.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/logging.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${lucene.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/lucene.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${spring.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/spring.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/release/${opendap.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/opendap.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/release/${resourcesOptional.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/resourcesOptional.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/external/${stax.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/stax.jar" 
storepass="${keystore.password}"/>
    <signjar alias="idv" jar="${lib.dir}/release/${visadNoDods.jar}" 
keystore="${keystore}"
             signedjar="${webstart_dir}/visadNoDods.jar" 
storepass="${keystore.password}"/>
  </target>

  <!-- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  -->
  <property name="test.src.dir" location="${root.dir}/src/test/java"/>
  <property name="test.dir" value="${build.dir}/build/test"/>
  <property name="test.classes.dir" value="${test.dir}/classes"/>
  <property name="test.reports.dir" value="${test.dir}/reports"/>

  <path id="test.sourcepath">
    <path refid="sourcepathUI"/>
    <pathelement location="${test.src.dir}"/>
  </path>

  <fileset id="test.libraries" dir="${lib.dir}">
    <include name="external/${junit.jar}"/>
  </fileset>

  <path id="test.classpath">
    <fileset refid="compile.libraries"/>
    <fileset refid="compileUI.libraries"/>
    <fileset refid="runtime.libraries"/>
    <pathelement location="${build.classes.dir}"/>
    <pathelement location="${test.classes.dir}"/>
    <pathelement location="${resources.dir}"/>
    <pathelement location="${resourcesUI.dir}"/>
    <fileset refid="test.libraries"/>
  </path>

  <target name="test-setup" depends="compile" description="setup for running 
junit tests">
    <mkdir dir="${test.dir}"/>
    <mkdir dir="${test.classes.dir}"/>

    <!-- debugging path -->
    <property name="test.classpath" refid="test.classpath"/>
    <echo>test.classpath=${test.classpath}</echo>
    <javac srcdir="${test.src.dir}" destdir="${test.classes.dir}"
           debug="${build.debug}" debuglevel="${build.debuglevel}" 
includeAntRuntime="false"
           source="1.5" target="1.5">
      <exclude name="examples/**"/>
      <exclude name="ucar/nc2/jni/**"/>
      <classpath refid="test.classpath"/>
    </javac>

  </target>

  <target name="unit-test" depends="compile, test-setup" description="run nc 
unit tests">
    <antcall target="unit-test-nc" />
  </target>

  <target name="unit-test-nc" description="run nc unit tests">
    <antcall target="unit-test-base">
      <param name="unit.test.name" value="unit-test-nc" />
      <param name="unit.test" value="ucar.nc2.TestAll" />
    </antcall>
  </target>

  <target name="unit-test-thredds" description="run thredds unit tests">
    <antcall target="unit-test-base">
      <param name="unit.test.name" value="unit-test-thredds" />
      <param name="unit.test" value="thredds.catalog.TestCatalogAll" />
    </antcall>
  </target>

  <target name="unit-test-base" description="run junit tests">
    <mkdir dir="${test.reports.dir}/${unit.test.name}"/>
    <junit printsummary="false" errorProperty="test.failed" 
failureProperty="test.failed" fork="on" dir="${root.dir}">
      <classpath refid="test.classpath"/>
      <jvmarg value="-ea"/>
      <jvmarg value="-Xmx1024m"/>
      <formatter type="xml"/>
      <formatter type="brief" usefile="false"/>
      <test todir="${test.reports.dir}/${unit.test.name}" name="${unit.test}"/>
    </junit>

    <!-- #Generate test reports -->
    <junitreport todir="${test.reports.dir}/${unit.test.name}">
      <fileset dir="${test.reports.dir}/${unit.test.name}">
        <include name="TEST-*.xml"/>
      </fileset>
      <report format="frames" todir="${test.reports.dir}/${unit.test.name}"/>
    </junitreport>
    <!-- create temporary file indicating these tests failed -->
    <!-- #Test case bypass trick -->
    <echo message="last build failed tests" 
file="${test.reports.dir}/${unit.test.name}/failed"/>
    <fail if="test.failed">FAILED! Unit tests failed.  Look at 
${test.reports.dir}/${unit.test.name}/index.html for details.</fail>
    <!-- Remove test failed file, as these tests succeeded -->
    <delete file="${test.reports.dir}/${unit.test.name}/failed"/>
    <echo message="SUCCESS! Unit tests succeeded.  Look at 
${test.reports.dir}/${unit.test.name}/index.html for details."/>
  </target>

  <!-- -->

</project>
  • 2009 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: