A titre expérimental, nous voulons construire nos produits en utilisant le compilateur java Eclipse (ecj-3.5.jar téléchargé depuis eclipse.org) sur la version d'exécution de Java 6 au lieu du JDK et si je comprends bien, il s'agit d'ajouter ce jar au chemin de classe ant et de définir la propriété build.compiler pour qu'elle pointe vers l'adaptateur.Spécification complète du compilateur Eclipse depuis _within_ build.xml
En incluant
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
dans mon build.xml et invoquant fourmi avec un JRE, je reçois l'erreur attendue que l'adaptateur ne peut pas être trouvé, et en ajoutant ECJ-3.5.jar au classpath dans le Panneau Eclipse Je peux compiler mon code comme prévu. Je crois que la même fonctionnalité est disponible avec "-lib foo.jar" depuis la ligne de commande avec les fourmis modernes.
Maintenant, je veux spécifier dans build.xml que je veux ecj-3.5.jar sur mon classpath satisfaisant le même que ci-dessus. Nous pouvons déjà le faire avec des tâches de fourmi, donc je crois que c'est possible.
Donc la question est: Comment puis-je ajouter au classpath utilisé par javac pour localiser le compilateur seulement depuis build.xml?
Il semble que le ant4eclipse à venir 1.0 inclut le compilateur Eclipse (qui est ce que je voulais utiliser pour), donc par la mise à niveau que (de 0,5) devrait résoudre le problème que nous avons.
2010-09-24: Ant4Eclipse est toujours à M4 sans indication du moment où la libération se produira.
2011-12-01: Nous avons maintenant migré de ant à maven. Les scripts build.xml atteignent le mur de la complexité et une nouvelle approche s'impose. Quiconque a besoin de choisir quoi faire - ne pas aller dans le chemin ant4cllipse sauf pour les projets triviaux.
2012-11-30: Un an plus tard, l'expérience maven est encore bonne. Il y a beaucoup de bizarreries et de changements d'état d'esprit, mais la plupart ont du sens dans le contexte. Maven peut facilement spécifier le niveau du compilateur sur des projets individuels. Nous cherchons à utiliser ecj au lieu de javac (pour plusieurs raisons) mais javac fonctionne bien dans la plupart des cas.
Avec la fourmi livrée avec Eclipse 3.5 (probablement 1.7) j'obtiens "Problème: échec de création de tâche ou type de composant". Un autre message d'erreur est lié à classpath avec ant 1.8, mais j'apprécierais vraiment une solution qui fonctionne depuis Eclipse. –
J'ai ajouté une autre option pour Ant 1.8 mais je ne vois pas comment vous pourriez le faire avec 1.7 – Mark