2009-06-25 8 views
0

J'ai écrit mon propre espace de noms personnalisé pour un projet Spring sur lequel je travaille. Le projet est construit avec maven, et je voudrais mettre mes fichiers xsd dans le répertoire des ressources. Le problème est le répertoire spring.schemas me demande de définir où je mets mon fichier xsd. Dans mon environnement dev, ce sera resources/schemas/myschema.xsd. Mais, quand je compile, le contenu des ressources est copié sur la cible, pas le répertoire cible lui-même. Donc, dans le code compilé, je me retrouve avec target/schemas/myschema.xsd. Mon fichier spring.schemas devrait-il faire référence aux ressources/schémas/myschema.xsd? Ou juste schémas/xsd?Espaces de noms personnalisés avec Maven

grâce,

Jeff

Répondre

1

Lors de la création d'un espace de noms personnalisé pour les Spring spring.schemas fichier doit se trouver dans META-INF avec une entrée comme ceci:

http://www.springframework.org/schema /context/spring-context-2.5.xsd=org/springframework/context/config/spring-context-2.5.xsd

Votre schéma personnalisé devrait être alors en src/main/resources/org/springframework/context/config/ à être ajouté dans le classpath du projet. Tout bon IDE doit comprendre src/main/resources/ en tant que dossier de code source et lire le schéma juste bien.

REMARQUE: je tire cet exemple du ressort core.jar, juste examiner vous-même

+0

merci pour l'exemple. Je pense que tout fonctionne bien, je pense qu'il y a un problème avec l'EDI - pourriez-vous jeter un coup d'œil au commentaire que j'ai posté ci-dessus? Merci. –

+0

Avez-vous essayé de «nettoyer» votre projet?Quel plugin Maven utilisez-vous? –

+0

J'ai ajouté une entrée à Eclipse afin qu'il sache comment résoudre mon fichier XSD et maintenant tout fonctionne bien. –

0

Vous pouvez définir un emplacement lié dans Eclipse. En utilisant une variable pour définir votre racine d'espace de travail, puis en créant un dossier lié, vous maintenez une certaine mesure de portabilité.

Faites un clic droit sur le projet, sélectionnez nouveau ->Dossier

appel dans le dossier "schémas", cliquez sur avancée >>, sélectionnez Lien vers le dossier dans le système de fichiers

Sélectionnez variables ... et choisissez WORKSPACE_ROOT variables

Ajoutez le chemin relatif à votre dossier schémas, par exemple. [nom du projet]/src/main/resources/schemas

Lorsque vous avez terminé, vous aurez un nouveau dossier de schémas avec une petite flèche dans le coin indiquant qu'il est lié. Vous devrez peut-être forcer l'actualisation pour que les nouveaux fichiers soient reflétés dans l'emplacement lié.

1

Il est seul point de schémas/myschema.xsd

cible/ressources se terminera dans votre classpath afin que vous puissiez tout référencer en toute sécurité là-bas.

+0

merci, c'est ce que j'ai fait, mais mon fichier xml de définition de bean, eclipse montre juste une marque d'erreur rouge dans la gouttière droite (sans description d'erreur) même si tout fonctionne bien. l'auto-complétion fonctionne même sur mon espace de noms personnalisé, donc c'est évidemment trouver le schéma. Une idée de comment cela a-t-il pu arriver? –

Questions connexes