2012-05-24 2 views
1

éventuellement tirval question ...Eclipse, projet de configuration, séparation des dossiers source

J'ai 2 répertoires dans un projet Java qui représentent (disons) un modèle et une vue. Ces 2 répertoires sont mappés en eclipse sous la forme de deux dossiers sources, tous deux sur le chemin de compilation.

Les classes d'affichage peuvent utiliser des classes de modèle, la seconde direction (vue d'utilisation de modèle) n'est pas autorisée).

Est-il acceptable de configurer Eclispe de cette façon?

Exemple (dans l'EDI, lors du codage):
Je peux utiliser aClass à partir de la logique du modèle en vue (la classe peut être importée, etc.).
Je ne peux pas utiliser aClass from view dans la logique du modèle (erreur Java générée par Eclipse).

Merci à l'avance :)

+0

donc c'est permis par la visibilité mais vous voulez qu'il soit interdit par l'EDI? –

+0

La solution WOLUD est de diviser le projet en deux, malheureusement ce n'est pas possible. Nous avons deux répertoires phsical contenant un paquet de paquets, les deux répertoires sont mappés dans eclipse en tant que dossier source. La visibilité est publique (impossible de passer en protégé car chaque dossier source contient plusieurs packages distincts). Je voudrais INSTRUCTER éclipse, qu'il existe une forme spéciale de relation entre les paquets, un seul peut utiliser l'autre, pas en face. – wilu

Répondre

0

Vous pouvez le faire en division 2 projets: modèle et visualiser et d'ajouter la dépendance entre eux. Je ne pense pas que ce soit possible dans un projet dans Eclipse. Mais vous pouvez écrire un simple processeur via JSR269 pour implémenter ceci (vérifiez les imports).

+0

Je serais ravi si seulement je pouvais ... Impossible de changer la structure du projet. – wilu

+0

vous pouvez créer 2 projets "virtuels" et lier des dossiers source (bouton Source de lien ...) à eux. – mart

+0

Cela pourrait être une solution ... Si je n'ai pas utilisé le support intégré eclipse pour accéder au système de contrôle de version. – wilu

1

Vous devriez envisager d'utiliser le système Java package par défaut. Cela vous permettra de diviser votre code source en deux paquets (modèle et vue), mais gardez tous les fichiers dans le même projet.

Pour empêcher vos classes de modèle d'accéder à quoi que ce soit à partir de votre package d'affichage, vous devez vous assurer que toutes vos classes dans le package d'affichage ont un modifier de protected (ou inférieur). Pour vous assurer que votre vue peut utiliser des classes de votre package de modèle, vous devez vous assurer que toutes vos classes dans le package de modèle (ou du moins celles auxquelles vous souhaitez pouvoir accéder) ont un modifier de public.

1

Si vous prévoyez d'utiliser OSGi et de créer 2 projets différents pour View et Model, vous pouvez y parvenir. Avec que la classe d'un projet particulier dire ViewProject ne peut être consulté (imported) dans un autre dire ModelProject moins ViewProject marque le paquet contenant cette classe comme package exporté et ModelProject marque comme package d'importation dans le fichier Menifest.mf.

Questions connexes