# Ant build.xml, danach wird ein srcpackage vergessen



## ph0e (27. Okt 2009)

Hallo Leute,

ich habe ein Projekt in Eclipse mit 2 Sourcefoldern

1.src -> das richtige Projekt
2.tests -> junit tests

Es funktioniert solange, bis ich das erste mal richtiges Projekt builde (in der build.xml) steht extra nur src drin, weil die tests sollen ja nicht mit in der jar.
Ergebnis, die jar ist wie sie soll, aber ich kann meine unittests nicht mehr ausführen, weil class not found bei allen kommt (heißt, die wurden irgendwie vergessen).
Behebung: Alle Unittests speichern und schon sind sie wieder da, aber das ist erstens sinnfrei und zweitens unschön.
Wo liegt mein Fehler?

Ich hatte die Frage schon mal ohne Anmeldung im Anfängerforum gestellt, da konnte das nicht gelöst werden und da es vor meiner Registrierung war, konnte ich es auch nicht einfach hier her schieben.

Würde mich über Hinweise freuen

Grüße ph0e


----------



## Unregistriert (27. Okt 2009)

Am besten postest du mal den ANT file, oder zumindest das target, das du ausführst. Ohne wird's schwer da eine Lösung zu erraten.


----------



## ph0e (27. Okt 2009)

<target name="compile" depends="init"
        description="Quellen kompilieren ..." >
        <!-- von ${src} nach ${build} -->
        <javac srcdir="${src}"
               destdir="${out}"
               debug="on"        	   
               deprecation="true"
        	   source="1.6"
        	   target="1.6">
        	<compilerarg line="-Xlint -Xlint:-unchecked"/>
            <include name="**/*.java"/>
            <classpath>
                <path refid="classpath" />
            </classpath>
        </javac>
    </target>


 <property name="src" value="src"/>

build.xml ist ja kein java code, oder soll ich das trotzdem als code schreiben ?


----------



## Gast2 (27. Okt 2009)

ph0e hat gesagt.:


> build.xml ist ja kein java code, oder soll ich das trotzdem als code schreiben ?


ant ist XML oder?

[XML]<target name="compile" depends="init"
        description="Quellen kompilieren ..." >
        <!-- von ${src} nach ${build} -->
        <javac srcdir="${src}"
               destdir="${out}"
               debug="on"        	   
               deprecation="true"
        	   source="1.6"
        	   target="1.6">
        	<compilerarg line="-Xlint -Xlint:-unchecked"/>
            <include name="**/*.java"/>
            <classpath>
                <path refid="classpath" />
            </classpath>
        </javac>
    </target>


 <property name="src" value="src"/>[/xml]

irgendwie verstehe ich nicht wieso Du im Komentar von *${build}* schreibst aber im Target ein *${out}* zu stehen hast
[xml]        <!-- von ${src} nach ${build} -->
        <javac srcdir="${src}"
               destdir="${out}"
[/xml]

im Übrigen ist irgend eins von Deinen Targets falsch und das löscht Dir Deine class-Files


----------



## ph0e (27. Okt 2009)

Hi Mogel,

danke für die Antwort, ja der Buildkommentar war natürlich sinnfrei.

[XML]    
    <target name="init">
        <!-- Zeitstempel fuer Ant-Lauf -->
        <tstamp/>
        <!-- zuerst mal das alte loeschen -->
        <delete dir="${out}" />
        <!-- neues Verzeichnis erstellen-->
        <mkdir dir="${out}"/>
    </target>

    <target name="compile" depends="init"
        description="Quellen kompilieren ..." >
        <!-- von ${src} nach ${out} -->
        <javac srcdir="${src}"
               destdir="${out}"
               debug="on"        	   
               deprecation="true"
        	   source="1.6"
        	   target="1.6">
        	<compilerarg line="-Xlint -Xlint:-unchecked"/>
            <include name="**/*.java"/>
            <classpath>
                <path refid="classpath" />
            </classpath>
        </javac>
    </target>

    <target name="dist" depends="compile" description="Distris erzeugen ... " >
        <!-- Versionen bauen, Datei enthaelt immer nen Zeitstempel -->
        <property name="jarname" value="${fullJarname}_${DSTAMP}.jar" />
        <jar compress="true"
             jarfile="${jarname}"
             manifest="${mani}">
            <fileset dir="${out}">
                <include name="**/*.class"/>
            </fileset>
        </jar>
        <!-- jar Verzeichnis erstellen und Jarfile dorthin kopieren -->
        <mkdir dir="${jars}" />
        <copy todir="${jars}" overwrite="y">
            <fileset dir="${dist.dir}">
                <include name="${jarname}" />
            </fileset>
        </copy>
        <!-- JarFile löschen -->
        <delete file="${jarname}" />
    </target>
[/XML]

src und out sind die folder,  <path refid="classpath" /> sind libs die das projekt benutzt

was macht jetzt hier meins kaputt?
das builden hat doch nu nix mit meinen Projektsettings zu tun.


----------

