Letztens wollte ich eine neue Version Get-You in Umlauf bringen. Dazu habe ich das ganze über NetBeans mit einem Projekt mit Ant-Script gelöst. Nun dachte ich könnte einfach den ganzen Projektordner nehmen und zippen. Naja auf jeden Fall hab ichs getan und an meinen Kollegen, damit er es an den launchpad ppa builder sendet um ein deb paket draus zu machen und es ins repos aufzunehmen. Einen Tag später bekam ich dann den Fehlerbericht vom Builder, dass das bauen des Pakets fehlgeschlagen sei. Ich fiel aus allen Wolken, denn bei mir hat das ganze problemlos kompiliert. Also hab ich mich dran gemacht den Fehler zu suchen. Und siehe da, nach einigen Stunden hatte ich des Problems Quelle. Das Problem war, dass NetBeans in seinem Ant-Script absolute Pfade verbaut hat. Das ist natürlich sehr problematisch, aber damit war klar warum das ganze nur auf meinem Rechner kompilierte. Na ja ich hab dann aber auch ne Lösung gefunden. Und zwar sind in der Datei `nbproject/project.properties’ alle Pfade nicht absolut gesetzt, also gilt es diese einzubinden. Das geht mit drei Zeilen Code in der Datei ‘build.xml’, denn NetBeans hat da netterweise einen Zielprototyp eingebaut, der wahrscheinlich für solche Zwecke gedacht ist. Kurze Rede langer Sinn
. Man schreibt folgende Zeilen unter die Zeile, in der die Datei `build-impl.xml` eingebunden wird.
<target name=“-pre-init“>
<property file=“nbproject/project.properties“/>
</target>
Somit werden die Variablen mit den nicht absoluten Pfaden gesetzt, bevor die absoluten Pfade gesetzt werden sollen. Nun ist alles in Butter.
Zum besseren Verständnis, hier mal eine Beispiel build.xml
<!–
You may freely edit this file. See commented blocks below for
–>
<!– some examples of how to customize the build. –>
<!–
(If you delete it and reopen the project it will be recreated.)
–>
<project name=“GetYou“ default=“default“ basedir=“.“>
<description>Builds, tests, and runs the project GetYou.</description>
<import file=“nbproject/build-impl.xml“/>
<target name=“-pre-init“>
<property file=“nbproject/project.properties“/>
</target>
</project>