12.3. Classpath in Eclipse, ANT, Maven definieren

Alle Entwicklungsumgebungen benötigen die folgenden Dateien im Classpath:

Sollten die Dateien nicht auffindbar sein, gibt es entsprechende Fehlermeldungen:

Nachfolgend werden Beispiele gezeigt, wie der Classpath in verschiedenen Umgebungen konfiguriert werden kann. Zusätzlich wird in Kapitel 12.4: „Pfade über Systemumgebungsvariablen setzen“ eine Alternative beschrieben, den Ort der Dateien pdfunit.config und license-key_pdfunit-java.lic über Systemumgebungsvariablen der Java-Runtime zu deklarieren.

Eclipse konfigurieren

Die einfachste Konfiguration für Eclipse ist, das komplette Installationsverzeichnis PDFUNIT_HOME und alle JAR-Dateien einzeln in den Classpath aufzunehmen:

Eine andere Möglichkeit ist die, die Datei pdfunit.config in das Verzeichnis src/test/resources zu verschieben und das Verzeichnis dann in den Classpath aufzunehmen:

Als Letztes können Sie noch die mitgelieferte Javadoc-Datei in Eclipse registieren, damit die Javadoc-Kommentare von PDFUnit in Eclipse angezeigt werden. Im Verzeichnis PDFUNIT_HOME befindet sich dazu eine Datei mit dem Namensmuster pdfunit-java-VERSION_javadoc.zip.

ANT konfigurieren

Es gibt verschiedene Möglichkeiten, ANT für PDFUnit zu konfigurieren. In allen Varianten müssen die JAR-Dateien des Installationsverzeichnisses PDFUNIT_HOME und der Verzeichnisse PDFUNIT_HOME/lib/* in den Classpath aufgenommen werden. Ebenso muss die Datei pdfunit.config im Classpath liegen.

Wenn Sie keine Änderungen in der pdfunit.config benötigen, ist es am einfachsten, zusätzlich zu den JAR-Dateien PDFUNIT_HOME selbst in den Classpath aufzunehmen, wie es das folgende Listing zeigt:

<!--
  It is important to have the directory of PDFUnit itself in the classpath,
  because the file 'pdfunit.config' must be found. 
-->
<property name="dir.build.classes"          value="build/classes" />
<property name="dir.external.tools"         value="lib-ext" />
<property name="dir.external.tools.pdfunit" value="lib-ext/pdfunit-2016.05" />

<path id="project.classpath">
  <pathelement location="${dir.external.tools.pdfunit}" />
  <pathelement location="${dir.build.classes}" />
  
  <!-- If there are problems with duplicate JARs, use more detailed filesets: -->
  <fileset dir="${dir.external.tools}">
    <include name="**/*.jar"/>
  </fileset>
</path>

Sie können die Datei pdfunit.config aber auch in ein beliebiges Verzeichnis legen, beispielsweise in src/test/resources. Diese Variante wird empfohlen, wenn Sie Änderungen an der Konfiguration vornehmen. Die Konfigurationsdatei wird in Kapitel 12.5: „Einstellungen in der pdfunit.config“ beschrieben. Der Classpath in ANT sieht dann folgendermaßen aus:

<path id="project.classpath">
  <!-- 
  The file 'pdfunit.config' should not be located more than once in
  the classpath, because it hurts the DRY principle.
  -->
  <pathelement location="src/test/resources" />
  <pathelement location="${dir.external.tools.pdfunit}" />
  <pathelement location="${dir.build.classes}" />
  
  <!-- If there are problems with duplicate JARs, use more detailed fileset: -->
  <fileset dir="${dir.external.tools}">
    <include name="**/*.jar"/>
  </fileset>
</path>

Maven konfigurieren

PDFUnit wird noch nicht über ein zentrales Repository zur Verfügung gestellt. Um es dennoch mit Maven zu nutzen, muss es selber in ein lokales oder unternehmenszentrales Repository eingestellt werden. Dazu wechseln Sie in das Verzeichnis PDFUNIT_HOME\lib und führen dort den folgenden Maven-Befehl aus:

mvn install:install-file -Dfile=<PATH_TO>pdfunit-java-VERSION.jar -DpomFile=<PATH_TO>pom.xml

Anschließend kopieren Sie die Datei pdfunit.config in das Verzeichnis src/test/resources.

Das folgende Bild zeigt die Projektstruktur nach dem Kopieren:

Verzeichnisstruktur für Maven-Konfiguration

In der pom.xml Ihres Projektes nehmen Sie diese Abhängigkeit auf:

<dependency>
  <groupId>com.pdfunit</groupId>
  <artifactId>pdfunit</artifactId>
  <version>2016.05</version>
  <scope>compile</scope>
</dependency>

Letzter Schritt für lizensiertes PDFUnit

Die Lizenzdatei license-key_pdfunit-java.lic muss immer im Classpath liegen, sonst erscheint die oben beschriebene Message-Box mit der Rechenaufgabe.