| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <project name="POI Testbuild" default="run" basedir="."> |
| |
| <description>Test-Ant file which verifies that the Apache POI distribution build sources can be compiled successfully. |
| |
| Before running this, you should execute the "jar" target in the main build.gradle to have the packaged files created correctly. |
| </description> |
| |
| <property name="dist" value="../build/dist"/> |
| <property name="build" value="../build/distsourcebuild"/> |
| |
| <condition property="gradle.executable" value="../gradlew.bat" else="../gradlew"> |
| <os family="windows" /> |
| </condition> |
| |
| <target name="init" depends=""> |
| </target> |
| |
| <target name="run" depends="init,runSourceBuild,runCompileTest"/> |
| |
| <target name="runSourceBuild" depends="init"> |
| <!-- clean out old stuff in build-dir --> |
| <delete dir="${build}"/> |
| <mkdir dir="${build}"/> |
| |
| <!-- select latest built source zip --> |
| <pathconvert property="srcpackage"> |
| <last> |
| <sort> |
| <date xmlns="antlib:org.apache.tools.ant.types.resources.comparators"/> |
| <resources> |
| <fileset dir="${dist}"> |
| <include name="poi-src-*.zip"/> |
| </fileset> |
| </resources> |
| </sort> |
| </last> |
| </pathconvert> |
| |
| <echo message="Found source package at ${srcpackage}"/> |
| <unzip src="${srcpackage}" dest="${build}" failOnEmptyArchive="true"/> |
| |
| <!-- look for name of sub-dir, do this dynamically as it changes with every (beta|rc)-release --> |
| <pathconvert property="dirversion"> |
| <dirset dir="${build}"> |
| <include name="*"/> |
| </dirset> |
| </pathconvert> |
| |
| <!-- copy over required libs to avoid re-downloading them always --> |
| <mkdir dir="${dirversion}/lib"/> |
| <copy todir="${dirversion}/lib"> |
| <fileset dir="../lib"/> |
| </copy> |
| |
| <!-- finally call Ant on the extracted source to check if we can build the packages --> |
| <echo message="Building in temporary dir ${dirversion}/"/> |
| <!--ant dir="${dirversion}" target="assemble" inheritAll="false" inheritRefs="false" useNativeBasedir="true"/--> |
| <exec executable="${gradle.executable}" dir="." failonerror="true"> |
| <arg value="assemble" /> |
| </exec> |
| </target> |
| |
| <target name="runCompileTest" depends="init" description="Verify that we can compile most examples without including excelant or scratchpad jars"> |
| <!-- clean out old stuff in build-dir --> |
| <delete dir="${build}" quiet="true" failonerror="false"/> |
| <!-- ... try again - on Windows, the JaCoCo ant task seems to keep files open and hence the lib directory can't be removed --> |
| <delete dir="${build}" quiet="true" failonerror="false"/> |
| <mkdir dir="${build}"/> |
| |
| <!-- select latest built jar files without scratchpad.jar --> |
| <pathconvert property="jarpackage"> |
| <sort> |
| <resources> |
| <fileset dir="${dist}"> |
| <include name="**/poi-5.*.jar"/> |
| <include name="**/poi-ooxml-5.*.jar"/> |
| <include name="**/poi-ooxml-lite-5.*.jar"/> |
| <exclude name="**/*-javadoc*"/> |
| <exclude name="**/*-sources*"/> |
| </fileset> |
| </resources> |
| </sort> |
| </pathconvert> |
| |
| <fail message="Did not find jar packages looking in directory ${dist}"> |
| <condition> |
| <or> |
| <equals arg1="${jarpackage}" arg2=""/> |
| <not> |
| <isset property="jarpackage"/> |
| </not> |
| </or> |
| </condition> |
| </fail> |
| |
| <echo message="Found jar packages at ${jarpackage}, dist: ${dist}"/> |
| <path id="libs"> |
| <fileset dir="../lib/main" includes="*.jar"/> |
| <fileset dir="../lib/ooxml" includes="*.jar"/> |
| <fileset dir="../lib/main-tests"> |
| <include name="junit*.jar"/> |
| </fileset> |
| </path> |
| |
| <echo message="Compiling examples without linking to scratchpad.jar to ensure that only some specific ones require this jar"/> |
| <javac srcdir="../poi-examples/src/main/java" destdir="${build}" |
| target="1.8" source="1.8" debug="true" |
| encoding="ASCII" fork="yes" includeantruntime="false" |
| excludes="org/apache/poi/examples/hslf/**,org/apache/poi/examples/hsmf/**,org/apache/poi/examples/hwmf/**,**/EmbeddedObjects.java,**/EmeddedObjects.java,**/LoadEmbedded.java,**/Word2Forrest.java" |
| classpath="${jarpackage}" classpathref="libs"> |
| </javac> |
| |
| <!-- select latest built jar files with additionally scratchpad.jar --> |
| <pathconvert property="jarpackagescratchpad"> |
| <sort> |
| <resources> |
| <fileset dir="${dist}"> |
| <include name="**/poi-5.*.jar"/> |
| <include name="**/poi-ooxml-5.*.jar"/> |
| <include name="**/poi-ooxml-lite-5.*.jar"/> |
| <include name="**/poi-scratchpad-5.*.jar"/> |
| <exclude name="**/*-javadoc*"/> |
| <exclude name="**/*-sources*"/> |
| </fileset> |
| </resources> |
| </sort> |
| </pathconvert> |
| |
| <echo message="Compiling all examples with the additional scratchpad.jar"/> |
| <javac srcdir="../poi-examples/src/main/java" destdir="${build}" |
| target="1.8" source="1.8" debug="true" |
| encoding="ASCII" fork="yes" includeantruntime="false" |
| classpath="${jarpackagescratchpad}" classpathref="libs"> |
| </javac> |
| </target> |
| </project> |