ant - nach erster Warning kein output mehr

Status
Nicht offen für weitere Antworten.

guni

Bekanntes Mitglied
Hallo, bin neu im bereich ant und ich habe mal eine ant-datei zum deploy mehrerer jar's erstellt.
das rennt auch scoweit durch, nur, dass meine ant nach der ersten warning (javac) keinen output mehr gibt.

woran liegt das?

mfg, guni
 

mvitz

Top Contributor
Ohne, dass du die Ant Datei postest, wird dir wohl höchst wahrscheinlich niemand helfen können.
 

guni

Bekanntes Mitglied
ant script sieht so aus ...

[XML]<?xml version="1.0" encoding="UTF-8"?>
<project name="sag schnittstellen" default="all" basedir=".">

<property name="build.compiler.warnings" value="off"/>

<property name="build.dir" value="C:/build" />
<property name="java.home" value="T:/OraCdb10g/jdk" />
<property name="lohnadmcdb.home" value="V:/lohnadmcdb" />
<property name="lohnadmcdb.lib" value="${lohnadmcdb.home}/lib" />
<property name="cdbdevkit.dir" value="T:\cdb_devkit" />

<target name="clean">
<delete dir="${build.dir}" />
</target>

<target name="init">
<antcall target="clean" />
<mkdir dir="${build.dir}" />
</target>

<target name="_compilegeneral" description="compiles the general lib for leSalaire">
<antcall target="init" />
<javac srcdir="../General" includes="**/*.java" destdir="${build.dir}">
<classpath>
<pathelement location="${lohnadmcdb.home}" />
<pathelement location="${lohnadmcdb.lib}/activation.jar" />
<pathelement location="${lohnadmcdb.lib}/axis.jar" />
<pathelement location="${lohnadmcdb.lib}/cdb-devkit-bpel.jar" />
<pathelement location="${lohnadmcdb.lib}/cdb-devkit-client.jar" />
<pathelement location="${lohnadmcdb.lib}/cdb-devkit-server.jar" />
<pathelement location="${lohnadmcdb.lib}/classes12.jar" />
<pathelement location="${lohnadmcdb.lib}/commons-discovery-0.2.jar" />
<pathelement location="${lohnadmcdb.lib}/commons-logging-1.0.3.jar" />
<pathelement location="${lohnadmcdb.lib}/content.jar" />
<pathelement location="${lohnadmcdb.lib}/content-ws-client.jar" />
<pathelement location="${lohnadmcdb.lib}/http_client.jar" />
<pathelement location="${lohnadmcdb.lib}/jaxrpc.jar" />
<pathelement location="${lohnadmcdb.lib}/ldapjclnt10.jar" />
<pathelement location="${lohnadmcdb.lib}/mail.jar" />
<pathelement location="${lohnadmcdb.lib}/ojdbc14.jar" />
<pathelement location="${lohnadmcdb.lib}/repository.jar" />
<pathelement location="${lohnadmcdb.lib}/saaj.jar" />
<pathelement location="${lohnadmcdb.lib}/servlet.jar" />
<pathelement location="${lohnadmcdb.lib}/trusted-app-utility.jar" />
<pathelement location="${lohnadmcdb.lib}/wsdl4j-1.5.1.jar" />
<pathelement location="${lohnadmcdb.lib}/xml.jar" />
<pathelement location="${lohnadmcdb.lib}/xmlmesg.jar" />
<pathelement location="${lohnadmcdb.lib}/xmlparserv2.jar" />
</classpath>
</javac>
</target>

<target name="_jargeneral" depends="_compilegeneral" description="creates jar file for the general lib of leSalaire">
<jar destfile="C:\Entwicklung\javabin\general.jar" basedir="${build.dir}" includes="**/*.class" manifest="C:\Entwicklung\programm\javaprog\General\MANIFEST.MF" />
</target>

<target name="compilesagparsers" description="creates build for sagparsers">
<antcall target="init" />
<javac srcdir="." includes="**/*.java" destdir="${build.dir}">
<classpath>
<pathelement location="C:\Entwicklung\javabin\general.jar" />
</classpath>
</javac>
</target>

<target name="jarsagparsers" depends="compilesagparsers" description="creates jar file for the sag parsers">
<jar destfile="C:\Entwicklung\javabin\sagparsers.jar" basedir="${build.dir}" includes="**/*.class" manifest="C:\Entwicklung\programm\javaprog\SAG Schnittstellen\MANIFEST.MF" />
</target>

<target name="copyjars">
<copy file="C:\Entwicklung\javabin\general.jar" tofile="V:\javabin\lib\general.jar" />
<copy file="C:\Entwicklung\javabin\sagparsers.jar" tofile="V:\javabin\SAG_sagparsers.jar" />

<copy file="C:\Entwicklung\javabin\general.jar" tofile="U:\javabin\lib\general.jar" />
<copy file="C:\Entwicklung\javabin\sagparsers.jar" tofile="U:\javabin\SAG_sagparsers.jar" />
</target>

<target name="all" depends="_jargeneral,jarsagparsers" description="creates jar files to run sag parsers">
<antcall target="copyjars" />
</target>

</project>[/XML]

output sieht so aus ...

Buildfile: C:\Entwicklung\programm\javaprog\SAG Schnittstellen\build.xml
_compilegeneral:
init:
clean:
[delete] Deleting directory C:\build
[mkdir] Created dir: C:\build
[javac] Compiling 6 source files to C:\build
[javac] C:\Entwicklung\programm\javaprog\General\src\com\eurofunk\general\LsCrypt.java:52: warning: unmappable character for encoding UTF8
 

mvitz

Top Contributor
Mit welchem Editor schreibst du denn so? Da scheint was mit der Zeichenkodierung nicht zu passen.

Btw <antcall> ist böse! Für das was du da machst, kann man bei den targets auch die depends="target" nutzen.
 

guni

Bekanntes Mitglied
was passt mit der Zeichenkodierung nicht?!

das problem bei depends war, dass der entsprechende block dann nur ein einziges mal im ganzen durchlauf aufgerufen wurde -> antcall ...

lg, guni
 

mvitz

Top Contributor
Kp, wie erstellst du denn deine .java Dateien?

Das eine dependency nur einmal abgearbeitet wird ist normal und soll auch so sein, wenn du ein target öfters brauchst, ist in den meisten Fällen dein Gedankengang falsch.

Wenn ich mir deine Datei angucke, so brauchst du nur init 2mal aufrufen und selbst das ist meiner Meinung nach nicht nötig. Somit kann man mit depends einen schönen Abhängigkeitsgraphen aufbauen, den Ant dann abbaut.
 

mvitz

Top Contributor
Klär mich mal bitte auf, was ist daran böse?

[QUOTE="Ant in Action", Seite 208]As Ant creates a new project on every <antcall>, the build will be slow and memory hungry, with common targets being called repeatedly.
Except for targets that you want to call more than once, especially with different parameters, let Ant handle the order of targets by listing them in the dependencies attributes of other tasks.
[/QUOTE]

Das Script oben macht (bis auf evtl. einmal) genau dies, anstatt mit dependencies zu arbeiten z.B. <target name="init" dependencies="delete", ruft er in delete init auf und genau das sollte eben vermieden werden. Das Prinzip zieht sich bei ihm durch das ganze Script durch.
 

guni

Bekanntes Mitglied
ok ...
kurz gesagt:
ich will ein ant script schreiben, dass verschiedene Projekte kompiliert, den bulid dann in jars umwandelt die dann in mehrere Verzeichnisse (Netzlaufwerke) kopiert werden.

mein 1. problem:
ich habe ein init-target. es erstellt einen neuen build-ordner.
dann sollen nach der reihe die projekte kompiliert werden und jeweils eine jar darus erstellt werden.
mein problem ist, dass ich den build-ordner für jedes projekt gern wieder frei hätte ...
wenn ich meine all-target jetzt so ausführe, dass ich init als dependancy setze, dann wird init nur ein einziges mal ausgeführt; der build-ordner wird also zwischen den kompilierungsvorgängen nicht mehr gelöscht. meine lösung: antcall.
gibt es da was besseres?!

mein 2. problem:
sobald bei irgendeiner kompilierung eine warning auftritt, bekomm ich keinen ant-output mehr :-(

mein 3. problem:
ich hab in eclipse ein projekt mit verschiedenen packages.
möchte mich beim kompilieren sagen
package_a.subpackage_1.* -> first.jar
package_a.subpackage_2.* -> second.jar
wie kann ich das mit ant lösen?!

bitte um hilfe.
mfg, guni
 

mvitz

Top Contributor
ok ...
kurz gesagt:
ich will ein ant script schreiben, dass verschiedene Projekte kompiliert, den bulid dann in jars umwandelt die dann in mehrere Verzeichnisse (Netzlaufwerke) kopiert werden.

mein 1. problem:
ich habe ein init-target. es erstellt einen neuen build-ordner.
dann sollen nach der reihe die projekte kompiliert werden und jeweils eine jar darus erstellt werden.
mein problem ist, dass ich den build-ordner für jedes projekt gern wieder frei hätte ...
wenn ich meine all-target jetzt so ausführe, dass ich init als dependancy setze, dann wird init nur ein einziges mal ausgeführt; der build-ordner wird also zwischen den kompilierungsvorgängen nicht mehr gelöscht. meine lösung: antcall.
gibt es da was besseres?!

Evtl könntest du ja das ganze so lösen:
Code:
build
|- project_a
|- project_b
 - project_c

Dann in die unter Ordner kompilieren, kopieren etc. und anschließend das jar erstellen.

mein 2. problem:
sobald bei irgendeiner kompilierung eine warning auftritt, bekomm ich keinen ant-output mehr :-(

komisch, kenne ich leider nicht.

mein 3. problem:
ich hab in eclipse ein projekt mit verschiedenen packages.
möchte mich beim kompilieren sagen
package_a.subpackage_1.* -> first.jar
package_a.subpackage_2.* -> second.jar
wie kann ich das mit ant lösen?!

So:
Code:
<jar basedir="X" destfile="Y/first.jar">
  <fileset includes="package_a/subpackage_1/**" />
</jar>
 
Zuletzt bearbeitet:

guni

Bekanntes Mitglied
hmm ... die warnungen treten hauptsächlich im zusammenhang mit umlauten auf:
warning: unmappable character for encoding UTF8

wie kann ich solche warnungen unterdrücken?!
 

mvitz

Top Contributor
Umlaute worin? Dateinamen, Ordner, Java Quelltexte? Generell solltest du umlaute prinzipiell beim programmieren vermeiden.
 

guni

Bekanntes Mitglied
... ja. ich hab sie in meinen javadoc-Kommentaren jetzt in die HTML-Codierung geändert.
Sonst hab ich sie in Kommentaren drin und manchmal in Pfaden von Ordnern, die ich in meinem Quelltext aufrufe.
Muss ich sie jetzt echt überall ändern, damit ich einen vollständigen ant-output bekomme?
ich versteh das nicht.
kann es sein, dass ant in eclipse standardmäßig irgendwie so konfiguriert ist, dass es seinen output bei jeder warning abbricht?!
das ist extrem störend weil ich nämlich dann nie mit sicherheit sagen kann, ob mein build wirklich erfolgreich durchgelaufen ist!

lg, guni
 

guni

Bekanntes Mitglied
hmm ... encoding war auf 'Default (Cp1252)'
... hab es auf UTF-8 geändert. Jetzt geht's!! Danke!!
war mir eine riesen Hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
D Cannot invoke "javafx.scene.control.MenuButton.getScene()" nach konvertierung zu maven Tools - Maven, Gradle, Ant & mehr 3
Tom299 Maven Maven funktioniert nach Installation nicht Tools - Maven, Gradle, Ant & mehr 1
D Ressource nach deployen nicht erreichbar Tools - Maven, Gradle, Ant & mehr 1
V Maven von Eclipse nach JBoss Tools - Maven, Gradle, Ant & mehr 3
B Subversion JAR erstellen nach Commit möglich? Tools - Maven, Gradle, Ant & mehr 5
HaukeG Maven Suche nach Ideen für Realisierung eines eigenen Plugin Tools - Maven, Gradle, Ant & mehr 3
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
A Hudson-Buckminster wirft Exception nach SVN Checkout Tools - Maven, Gradle, Ant & mehr 3
A ProcessBuilder kann nach Deployment File nicht finden Tools - Maven, Gradle, Ant & mehr 4
A Applet Applet startet nach Einbinden auf Website nicht Tools - Maven, Gradle, Ant & mehr 4
Icewind Applet reagiert nach neu laden der Webseite nicht mehr verlässlich auf KeyEvents Tools - Maven, Gradle, Ant & mehr 6
N [Applet] Button wir nach 5 secs Unsichtbar Tools - Maven, Gradle, Ant & mehr 2
C Webstart Fehler (verifizierung) nach update auf 1.5 Tools - Maven, Gradle, Ant & mehr 4
T :: ANT - Rekursiv nach JARs suchen (Wildcards) Tools - Maven, Gradle, Ant & mehr 4
P Applet signiert, aber Browser fragt nicht nach Zertificat Tools - Maven, Gradle, Ant & mehr 26
C Applet funktioniert nicht nach Signatur Tools - Maven, Gradle, Ant & mehr 3
M Applet, welche möglichkeiten nach draussen zu schreiben ? Tools - Maven, Gradle, Ant & mehr 5
N Link aus Applet nach X Sekunden schließen? Tools - Maven, Gradle, Ant & mehr 4
C Applet für kurze Zeit nach dem starten anhalten Tools - Maven, Gradle, Ant & mehr 2
karambara größere daten von applet nach servlet schicken (port 80) Tools - Maven, Gradle, Ant & mehr 2
G java applets laufen nicht mehr nach degragmentierung Tools - Maven, Gradle, Ant & mehr 3
I Keine Verbindung nach draußen mit Applet Tools - Maven, Gradle, Ant & mehr 3
P Hilfe - Seltsame Fehlermeldung nach Signatur eines Applets! Tools - Maven, Gradle, Ant & mehr 12
M Modales Fenster nach Programmwechsel nicht mehr erreichbar Tools - Maven, Gradle, Ant & mehr 4
Z Applet gibt Returnwert nach html zurück ! Tools - Maven, Gradle, Ant & mehr 5
L frage nach windowClosing Tools - Maven, Gradle, Ant & mehr 3
G Applet läuft erst, nach dem ich es abgeschrieben hatte Tools - Maven, Gradle, Ant & mehr 8
F NoSuchMethodFoundError nach Implement von PopupMenuListener Tools - Maven, Gradle, Ant & mehr 4
G Adventskerzen brennen nach Datum automatisch 1..2..3..4 Tools - Maven, Gradle, Ant & mehr 1
reibi Maven M2 -Eclipse - Group - Warning Tools - Maven, Gradle, Ant & mehr 3

Ähnliche Java Themen

Neue Themen


Oben