2010-08-12 3 views
3

J'ai un fichier XSD qui est référencé dans trois différents fichiers XML dans les différents modules du projet en utilisant:Référence d'un fichier XSD provenant de différents XML dans différents modules de projet?

<item-groups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xml_schemas/item_groups.xml.xsd"> 

J'ai essayé de comprendre comment éviter de copier manuellement le XSD dans tous les modules dont il a besoin, donc je ne pas avoir à gérer trois fichiers au lieu d'un.

Y at-il un moyen dans maven que je ne puisse avoir qu'une seule version dans un de mes modules, et au moment de la construction il la copie sur les deux autres?

Merci!

Répondre

0

En supposant que le XSD est empaqueté dans au moins un module, il devrait être possible d'obtenir ce que vous voulez avec le plugin Maven Dependency et dependency:unpack. L'idée serait de lier l'objectif sur generate-resources pour déballer le XSD du module qui l'a (en utilisant l'option pour récupérer exactement ce que vous voulez) et de l'écrire si nécessaire. Voir le Unpacking specific artifacts pour un exemple complet.

+0

Mon but était simplement de copier le fichier, aucun déballage n'est nécessaire. J'ai vu que je peux juste appeler fourmi de maven et le faire. Merci pour la suggestion cependant. – blanquish

+0

@blanquish: La solution ci-dessus est la manière propre de le faire (pour garder les modules lâchement couplés, pour pouvoir les construire indépendamment sans vérifier l'ensemble du projet). Maintenant, vous voulez casser ces règles, si le couplage de vos modules n'est pas un problème, alors vous pouvez utiliser des chemins relatifs et ainsi de suite pour copier un fichier d'un module à un autre (le plugin de ressources peut le faire). Mais ce n'est pas la bonne façon de le faire. –

Questions connexes