2017-10-04 5 views
0

Je construis un DSL en utilisant xtext 2.12 en éclipse d'oxygène en suivant les exemples de smalljava dans le livre de Bettini (2nd ed). Dans la plupart des cas, tout fonctionne jusqu'à ce que j'ajoute une bibliothèque comme décrit au chapitre 10. Dans les tests unitaires qui chargent la bibliothèque explicitement, tout fonctionne: le fichier bibliothèque se charge, l'importation implicite réussit et je peux me référer aux types définis dans la bibliothèque. . Cependant, lorsque j'ouvre maintenant l'EDI, il ne charge pas automatiquement la bibliothèque, et je me retrouve avec un NPE lorsque la bibliothèque essaie de charger des classes implicites. Il est clair que la méthode loadLib qui est appelée explicitement dans les tests unitaires n'est appelée nulle part depuis l'EDI car le message du journal n'est jamais émis.xtext ide ne charge pas la bibliothèque

Comment puis-je obtenir l'IDE pour charger la bibliothèque au démarrage? Plus précisément, je sais quoi appeler, je ne sais pas où l'appeler dans l'IDE.

merci!

+0

Comment ressemble le npe? avez-vous adapté la portée? –

+0

êtes-vous sûr que vous n'avez pas à mettre la lib est sur le classpath du fichier modèle? (Exporter à la def/dépendance au projet de modèle) –

+0

Merci pour l'aide! – user2000974

Répondre

0

S'il vous plaît assurez-vous que le paquet contenant la bibliothèque est exportée par le plug-in contenant le fichier de la bibliothèque et le plug-in contenant le fichier modèle de test a une dépendance au plug-in contenant le fichier de bibliothèque

charge lib est jamais appelée par ide. l'ide construit directement le fichier à partir du classpath du modèle contenant le projet

+0

Je ne suis pas sûr de ce que vous entendez par "plugin contenant le fichier de modèle de test." Le cas d'utilisation ici est que j'ouvre l'IDE en sélectionnant Exécuter en tant que - Application Eclipse sur le projet dsl. Ensuite, j'ouvre un nouveau fichier dsl dans un nouvel espace de travail. Le fichier test dsl n'est contenu dans aucun plugin. Mais alors, je suppose que c'est le plugin IDE qui doit avoir cette dépendance si la bibliothèque est supposée être une importation par défaut. La méthode loadLib est-elle uniquement destinée à être utilisée dans les tests? Merci! – user2000974

+0

pas au moins la première édition du livre que j'ai lu sur le tout premier paragraphe sur le sujet "org.example.smalljava; Bettini, Lorenzo .L'application de langages spécifiques au domaine avec Xtext et Xtend (Kindle-Position4614). Packt Publishing, version Kindle. " –

+0

Maintenant, si nous exécutons Eclipse, créez un projet, et ajoutez en tant que dépendance notre projet org.example.smalljava, les classes de mainlib.smalljava seront automatiquement disponibles. Bettini, Lorenzo. Implémentation de langages spécifiques au domaine avec Xtext et Xtend (Kindle-Positionen4611-4612). Packt Publishing. Kindle-Version. –