Ant-Skript und Kompilierungsfehler

Status
Nicht offen für weitere Antworten.

AMiGA

Bekanntes Mitglied
Hallo zusammen,

ich würde gerne ein umfangreiches Projekt aus diversen Paketen mittels einem ant-Skript kompilieren. Ich würde es gerne so kompilieren, wie es durch ein autobuild in eclipse kompiliert wird: Für alle Klassen, die kompiliert werden können, sollen class-Dateien erzeugt werden, auch wenn nicht das gesamte Projekt kompiliert werden kann.

Folgendes Skript nutze ich:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="compile">

    <property name="src.dir" value="src"/>
    <property name="dst.dir" value="bin"/>

    <target name="compile">
        <mkdir dir="${dst.dir}"/>
        <javac srcdir="${src.dir}"
                   destdir="${dst.dir}"
                   classpath="lib/log4j-1.2.8.jar;lib/ojdbc14.jar"
                   failonerror="false"
        </javac>
    </target>
</project>

Leider bricht Ant mit "Compiler error" ab. Das Skript meldet zwar "BUILD SUCCESSFUL", aber es werden überhaupt keine class-Dateien erzeugt.

Kann mir eventuell jemand auf die Sprünge helfen? Danke!

Gruß,
AMiGA
 

s-markus

Mitglied
Ich denke da fehlt die Anweisung was alles kompiliert werden soll
(also die Anweisung includes="**/*.java"):


Code:
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="compile">

    <property name="src.dir" value="src"/>
    <property name="dst.dir" value="bin"/>

    <target name="compile">
        <mkdir dir="${dst.dir}"/>
        <javac srcdir="${src.dir}"
                   destdir="${dst.dir}"
                   includes="**/*.java"
                   classpath="lib/log4j-1.2.8.jar;lib/ojdbc14.jar"
                   failonerror="false"
        </javac>
    </target>
</project>

Vielleicht hilfts ja ...
 

AMiGA

Bekanntes Mitglied
Ich denke da fehlt die Anweisung was alles kompiliert werden soll
(also die Anweisung includes="**/*.java"):
Leider wird trotz der includes-Anweisung immer noch nichts kompiliert. Zu Beginn erscheint bei ant die Ausgabe "Compiling 357 source files to D:\test", aber am Ende erscheint "Compile failed", weil nicht alle Dateien kompilierbar sind. Wie kompiliert eclipse denn intern? Das muss doch eigentlich auch über ein ant-Skript abbildbar sein...

Gruß,
AMiGA
 

s-markus

Mitglied
Also wie eclipse kompiliert weiss ich leider nicht. Ich glaube aber nicht das es einfach nur ein internes Ant-Buildfile gibt, dafuer geht es mir in eclipse doch irgendwie immer zu schnell.

Was ich noch probieren wuerde ist eine Ant-Buildfile aus eclipse zu exportieren.
(Rechtsklick auf das Projekt -> Export ... -> General -> Ant-Buildfile)

Warum sind eigentlich nicht alle Files kompilierbar?
 

AMiGA

Bekanntes Mitglied
Warum sind eigentlich nicht alle Files kompilierbar?
Leider das typische Henne-Ei-Problem. Einige Dateien sind nicht kompilierbar, da sie von Dao-Objekten abgeleitet sind. Diese werden durch einen Generator generiert. Der Generator befindet sich aber im eigentlichen Projekt und muss zunächst übersetzt werden...

Gruß,
AMiGA
 

AMiGA

Bekanntes Mitglied
Wieso teilst du das Projekt nicht einfach, bzw macht wenigstens 2 unterschiedliche source-folder?
Ich fürchte, darauf wird es hinauslaufen. Der Generator benutzt leider auch diverse Klassen, die quer über das gesamte Projekt verstreut sind. Es reicht leider nicht, ein einzelnes Paket zu kompilieren.

Für javac gibt es keine Option, trotz compile errors weiter zu kompilieren und so viele class-Dateien wie möglich zu generieren?

Gruß,
AMiGA
 

kleiner_held

Top Contributor
Nein glaube ich nicht. Du kannst natuerlich auch inkrementell compilieren, d.h. du sagst nur
Code:
includes="**/DAOGenerator.java"
wenn dadurch keine Abhaengigkeiten von unkompilierbaren Klassen entstehen, sollte es gehen.

An sich wuerde ich aber den Generator zur Infrastruktur bzw zu den Entwicklungswerkzeugen zaehlen und versuchen das ganze strikt zu trennen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben