Tika 0.6 : compilation et dépendances
Tika est une librairie Java qui a pour but l’extraction du texte de toutes sortes de formats de fichiers : PDF, office, html, … (la liste complète est disponible ici). Afin d’utiliser cette librairie dans vos projets java, il faut en récupérer les sources, les compiler et également récupérer les librairies dont dépend Tika. Voici la procédure à suivre ainsi qu’une astuce pour palier à un problème de compilation.
Etape 1 : Récupérer les sources
Les sources sont disponibles à partir de la page http://lucene.apache.org/tika/download.html
Décompresser l’archive dans un répertoire de travail /tmp/tika-0.6
Etape 2 : Compilation.
Le moyen le plus simple est d’utiliser maven 2.
On se place dans le répertoire de travail
cd /tmp/tika-0.6
On positionne la variable d’environnement LC_ALL afin de ne pas avoir d’erreur durant la compilation (l’astuce) et on alloue par la même occasion suffisamment de mémoire de pour maven
export LC_ALL=en_US.UTF-8 export MAVEN_OPTS="-Xmx2048m"
On lance la compilation
mvn install
4 fichiers jar sont générés
find . -name *.jar -print
./tika-app/target/tika-app-0.6.jar ./tika-bundle/target/tika-bundle-0.6.jar ./tika-core/target/tika-core-0.6.jar ./tika-parsers/target/tika-parsers-0.6.jar
Pour utiliser Tika dans une application, seules les 2 jars suivants sont indispensables :
./tika-core/target/tika-core-0.6.jar
./tika-parsers/target/tika-parsers-0.6.jar
Par contre, tika-parser-0.6.jar requière un certain nombre de librairies tierces. Les récupérer est la troisième étape.
Etape 3 : Récupération des dépendances
On se place dans le répertoire des sources de tika-parser
cd tika-parsers
On demande à maven de récupérer les dépendances
mvn dependency:copy-dependencies
Les dépendances sont disponibles dans le sous-répertoire target/dependency et il s’agit de:
./target/dependency/asm-3.1.jar ./target/dependency/commons-compress-1.0.jar ./target/dependency/commons-logging-1.1.1.jar ./target/dependency/dom4j-1.6.1.jar ./target/dependency/fontbox-0.8.0-incubator.jar ./target/dependency/geronimo-stax-api_1.0_spec-1.0.1.jar ./target/dependency/hamcrest-core-1.1.jar ./target/dependency/jempbox-0.8.0-incubator.jar ./target/dependency/junit-3.8.1.jar ./target/dependency/log4j-1.2.14.jar ./target/dependency/metadata-extractor-2.4.0-beta-1.jar ./target/dependency/mockito-core-1.7.jar ./target/dependency/objenesis-1.0.jar ./target/dependency/pdfbox-0.8.0-incubating.jar ./target/dependency/poi-3.6.jar ./target/dependency/poi-ooxml-3.6.jar ./target/dependency/poi-ooxml-schemas-3.6.jar ./target/dependency/poi-scratchpad-3.6.jar ./target/dependency/tagsoup-1.2.jar ./target/dependency/xml-apis-1.0.b2.jar ./target/dependency/xmlbeans-2.3.0.jar
Tags: Lucene / Solr, Solr, tika