Comment puis-je éliminer les sources dans un javac tâche ant?
J'ai la suite dans ma build.xml:
<target name="compile.baz" depends="init">
<javac destdir="${build.dir}/classes" debug="on">
<compilerarg value="-Xlint:deprecation"/>
<src>
<pathelement location="${src.dir}/com/foo/bar/baz/" />
<pathelement location="${src.dir}/com/foo/bar/quux/" />
<!-- Need to exclude ${src.dir}/com/foo/bar/quux/dontwant/-->
</src>
<classpath refid="classpath.jars" />
</javac>
...
</target>
Ce surtout est ce que je veux, sauf que (comme le commentaire dit) je ne pas voulez que les fichiers
${src.dir}/com/foo/bar/quux/dontwant/
être compilé par cette tâche (mais je ne veux tout le reste sous ${src.dir}/com/foo/bar/quux/
être compilé dans cette tâche).
Je suis une complète ant n00b, et de la documentation n'a pas été une grande aide pour moi. Je vois plusieurs endroits où il dit qu'il existe différents exclure/exclut les éléments/attributs, mais à chaque variation, que je pense soit a aucun effet ou qu'une erreur comme "bla ne prend pas en charge les "exclure " attribut".
OriginalL'auteur Laurence Gonsalves | 2010-06-30
Vous devez vous connecter pour publier un commentaire.
Un couple de personnes a suggéré d'utiliser
<exclude>
. Cela n'a pas fonctionné avec la façon dont ma tâche a été spécifié. trashgod de la réponse liée à le sixième exemple sur cette page qui m'a donné une idée de la façon de restructurer ma tâche de spécification.Il semble que mon problème était lié à la façon dont j'ai été spécification de la source des fichiers. Plutôt que d'utiliser
<pathelement>
éléments dans un<src>
, comme ceci:Je suis passé à l'aide d'un seul
<src>
avec un chemin d'accès et un ensemble de<include>
éléments, comme ceci:Cela semble être fonctionnellement identique, mais il est compatible avec l'utilisation de
<exclude>
:(En fait, je suis surpris de voir que ce qui était là en premier lieu, travaillé à tous.)
OriginalL'auteur Laurence Gonsalves
À partir de mes expériences, vous ne devez pas inclure chemin d'accès complet du fichier que vous souhaitez exclure.
Ce n'est pas du travail:
mais celui-ci n':
OriginalL'auteur May Bogus
Essayer
+1 pour le droit d'origine de l'idée.
OriginalL'auteur matiasf
Je ne suis pas sûr du reste, mais la
<exclude/>
élément imbriqué devrait fonctionner dans l'Javac
tâche. Voir le sixième exemple vers le bas.Addendum: les Motifs, y compris la
**
notation, sont discutés dans Répertoire des Tâches basées sur l'.*
, c'est la même chose matiasf dit. Juste pour être sûr, j'ai essayé de toute façon, mais ça ne fonctionne pas. L'exemple que vous avez associé m'a aidé à comprendre quelque chose qui fonctionne bien.Oui, +1 pour @matiasf. Je voulais aussi montrer que
<exclude/>
est imbriquée dansjavac
, mais pas dans<src/>
. J'ai ajouté un lien vers l'article sur**
, parce que je ne peux jamais trouver quand j'en ai besoin. 🙂OriginalL'auteur trashgod
Si vous essayez d'exclure des classes Java mais Fourmi est encore en train d'essayer de compiler ensuite, cela peut être dû à des références à ces classes dans votre code.
Si A.java a une référence à B.java et vous essayez d'exclure B.java puis compiler A.java exigera que B.java est compilé trop.
C'est une des raisons pour les interfaces en Java, de sorte que vous pouvez compiler l'interface sans avoir à compiler les implémentations.
OriginalL'auteur Giles
essayer
dossier "test" sous
{source.dir}
ne serait pas respectéOriginalL'auteur user2177577