2010-12-29 5 views
2

J'ai des scripts de construction Ant générés automatiquement que j'ai besoin d'utiliser pour construire une application. J'utilise Ant 1.8.1 et Java 1.6. Les scripts utilisent la tâche Apt Ant, qui selon le task reference est pratiquement obsolète dans Java 1.6 car elle peut traiter les annotations dans le compilateur. Cependant, les cibles Apt génèrent des classes supplémentaires dont mon application a besoin et je n'ai pas réussi à trouver un moyen de répliquer cela en utilisant javac. Le problème est que, lorsque les scripts sont exécutés, la tâche Apt échoue et se plaint d'avoir besoin d'un JDK de 1.5+ même si j'ai installé un JDK 1.6. J'ai essayé de remplacer les balises <apt> par des balises <javac>, en copiant autant d'attributs que possible, mais en faisant cela, la construction tombe en panne lorsque vous recherchez des classes qui auraient dû être générées par la tâche <apt>.
J'ai également essayé d'installer un JDK 1.5 et d'exécuter le script Ant contre cela, et bien que la tâche Apt fonctionne bien, les tâches javac se plaignent de mauvais fichiers de classe parce qu'ils ont été compilés en 1.6 mais en 1.5. J'ai donc complètement reconstruit la source en 1.5, mais le compilateur se plaint toujours d'un mauvais fichier de classe, bien que j'ai remarqué qu'il a été notablement plus loin dans le processus de construction avant que cela ne se produise. Je suis à bout de nerfs et je me demande s'il existe un moyen de faire en sorte que la tâche Apt fonctionne bien avec Java 1.6, ou en fait tout autre moyen de faire le même travail qu'Apt avec différentes tâches que je pourrais avoir manqué?Tâche avec Java 1.6?

Répondre

0

J'ai trouvé la solution - et c'était plus simple que je ne le pensais.

Pour corriger les scripts, je devais simplement passer à une ancienne version de Ant. Weblogic est livré avec Ant 1.6.5, et après avoir pointé mon ANT_HOME sur cette version plutôt que sur Apache 1.8.1, les scripts se sont déroulés sans problème.