2009-06-29 17 views
0

J'ai besoin de la liste des fichiers qui ont été compilés pendant cette exécution. Je veux alimenter cette liste à une étape ultérieure de post-traitement.Comment puis-je post-traiter les fichiers compilés à l'aide de la tâche Ant javac?

J'ai trouvé un option to list (voir l'option listfiles) les fichiers compilés au cours de cette exécution, mais il semble seulement bon pour afficher la liste sur la console.

Une idée? Je parle de compiles incrémentales, donc prendre un ensemble de fichiers du dossier de construction n'est pas une option.

Edit: Une idée semble être custom logger mais je cherche toujours quelque chose de simple

Edit: Une autre idée est d'utiliser depend selector avec FileSet avant javac et de garder une certaine façon la liste en mémoire, pour être utilisé après l'exécution de javac

Répondre

2

Vous pouvez simplement former un ensemble de fichiers sur tous les fichiers de classe dans le répertoire cible du fichier javac.

Modifier: Après la clarification, je dois ajuster ma réponse. Je ne l'ai pas encore fait, mais je tenterais ma chance avec selectors. Le sélecteur modifié ressemble à celui que vous voulez - un ensemble de fichiers de tous les fichiers de classe dans un répertoire, qui ont changé depuis la dernière exécution. Voici un bout de code:

<fileset dir="${build}"> 
    <filename name="**/*.class"/> 
    <modified/> 
</fileset> 

Il n'a pas directement post-traitement de la sortie du javac-tâche, mais devrait résoudre votre problème.

+0

Désolé de ne pas être clair, mais je parle de compiles incrémentales, où JavaC compile uniquement les fichiers .java qui sont plus récents que leur fichier .class compilé –

+0

J'ai ajusté ma réponse. J'espère que ça aide. – Mnementh