2009-07-06 7 views
1

aufzunehmen Als ich:.Wie Standardpaket in Ant javac Aufgabe

<javac srcdir="${src}" destdir="${build.classes.dir}" classpathref="classpath"> 
    <include name="ObjectInDefaultPackage"/> 
    <include name="com/mypackage/**"/> 
</javac> 

Es wird nicht mehr die Kompilierung hinzufügen und die Klasse hinzufügen ObjectInDefaultPackage, dass in dem Standard-Paket ist (dh es ist nicht verpackt ist, ist es auf dem Mann sitzt $ {src} Verzeichnis). Wenn ich die Includes entferne, fügt es das gut hinzu, aber sobald ich mindestens einen Include/Exclude gesetzt habe, kann ich keinen Weg finden es hinzuzufügen.

Wenn ich tun:

<javac srcdir="${src}" destdir="${build.classes.dir}" classpathref="classpath"> 
</javac> 

Dann stellt er die ObjectInDefaultPackage ...

Antwort

2

verwenden:

<include name="ObjectInDefaultPackage*"/> 
<include name="com/mypackage/**"/> 

Ohne Schrägstriche, Ant wird im Zielverzeichnis suchen, das ist src. Oder verwenden Sie *.java.

Es wird jedoch nicht empfohlen, Klassen im Standardpaket zu haben.

+0

Dies kann arbeiten, aber es ist möglich, mehr als ein Objekt mit der gleichen Zeichenkette beginnen zu haben. das du nicht einschließen möchtest. Btw, der Grund für das Standardpaket hat damit zu tun, wie die Anwendung im Hauptmenü für das Mac OS benannt ist. Kurz gesagt, Sie können eine System.setProperty (...) machen, aber es ist umständlich und hat einige andere Regeln (zum Beispiel wenn der L & F aufgerufen wird, etc.). Um all das zu vermeiden, wenn Sie nichts tun, wird es den Paketnamen und die Klasse als Standardanwendungsname in das Menü aufnehmen;) –

0

Ich habe gerade das Problem entdeckt. Dummer Fehler. Es passiert, wenn Sie so lange mit Wildcards umgehen.

Die Antwort lautet:

<javac srcdir="${src}" destdir="${build.classes.dir}" classpathref="classpath"> 
    <include name="ObjectInDefaultPackage.java"/> 
    <include name="com/mypackage/**"/> 
</javac> 

Hinweis ObjectInDefaultPackage zu ObjectInDefaultPackage geändert wurde ** Java **