2009-07-06 13 views
1

Quand je.Comment inclure package par défaut dans Ant javac Tâche

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

Il n'ajouterai compilons plus et ajouter la classe ObjectInDefaultPackage qui est dans le package par défaut (il est pas emballé, il est assis sur l'homme $ {src} répertoire). Si je supprime les inclusions, cela ajoute très bien, mais une fois que j'ai défini au moins une inclusion/exclusion, je ne peux plus trouver un moyen de l'ajouter.

Si je fais:

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

Ensuite, il compile les ObjectInDefaultPackage ...

Répondre

2

Utilisez ceci:

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

Sans barres obliques, Ant recherche dans le répertoire cible, qui est src. Ou utilisez *.java.

Cependant, il n'est pas recommandé d'avoir des classes dans le package par défaut.

+0

Cela peut fonctionner aussi, mais il est possible d'avoir plus d'un objet à partir de la même chaîne. que vous ne voulez pas inclure. Btw, la raison du package par défaut est liée à la façon dont l'application est nommée dans le menu principal pour Mac OS. Longue histoire, vous pouvez faire un System.setProperty (...) mais il est lourd et a d'autres règles (par exemple quand le L & F est appelé, etc.). Pour éviter tout cela, si vous ne faites rien, il saisira le nom du paquet et la classe comme nom d'application par défaut dans le menu;) –

0

Je viens de découvrir le problème. Erreur stupide. C'est ce qui arrive quand vous êtes si habitué à gérer des caractères génériques depuis si longtemps.

La réponse est:

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

Avis ObjectInDefaultPackage a été modifié pour ObjectInDefaultPackage ** java **