2011-06-24 4 views
2

J'ai un projet Java qui utilise un code source généré automatiquement. Ce code source est produit par un outil de ligne de commande --- Bison, en fait --- à partir d'un fichier source spécial.Règles de génération personnalisées pour Eclipse

Je voudrais un moyen de régénérer automatiquement la source Java lorsque cela est nécessaire lorsque j'appuie sur le bouton 'build' dans Eclipse. Est-ce possible, et si oui comment?

Normalement, je l'intégrerais dans le projet makefile, mais bien sûr, c'est Java, et il n'utilise pas de fichier makefile. J'ai regardé fourmi, mais la fourmi semble plutôt hostile aux outils de ligne de commande traditionnels. Je sais quelque chose comme cela est possible avec le générateur intégré Eclipse parce que le kit de développement Android le fait; alors qu'est-ce que ça fait?

Répondre

7

Cliquez avec le bouton droit sur le projet, sélectionnez Properties > Builders > New ... > Program.

Vous pouvez sélectionner un outil de ligne de commande qui sera exécuté à chaque fois que le projet est construit.


Pour être complet: il s'agit d'une solution exclusivement Eclipse. Je vous recommande d'utiliser un système de construction au lieu de Eclipse simple. Les deux Maven et Ant s'intègrent bien avec Eclipse (Maven à travers m2eclipse, Ant à travers le même mécanisme Builder comme ci-dessus), éventuellement d'autres aussi. Avec Maven, vous utiliserez exec:exec (usage).

Avec Ant vous utiliseriez la tâche <Exec>.

+0

Il semble que les options ci-dessus exécutent la commande inconditionnellement, ce qui n'est pas ce que je veux --- Je veux seulement exécuter l'outil quand le fichier d'entrée change. Étant donné que ce genre de chose est le cœur et l'âme d'un système de construction, Eclipse le soutient-il? –

+0

@David Ma conjecture est que vous devriez créer un script de shell ou alors faire la vérification de la dernière modification par rapport à un fichier cache avant d'appeler votre exécutable. Ou peut-être l'une des restrictions que vous pouvez appliquer dans l'onglet "Options de construction" est bon pour vous. –

+5

Soupir. Qu'est-ce que c'est, CP/M? Est-ce que tous les 1 Go d'Eclipse ne peuvent vraiment pas faire quelque chose que les Unixoids à moitié résolus faisaient dans les années 80? En fait, j'ai maintenant un script ant qui appelle inconditionnellement bison et jflex dans le cadre du processus de construction, et une construction est assez rapide pour que la régénération de la source ne soit pas un problème, mais ... juste ... sheesh. C'est tout. Quoi qu'il en soit, merci beaucoup. –

Questions connexes