IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

JAXB Un package pour un .XSD [Trucs & Astuces]


Sujet :

Maven Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Par défaut JAXB Un package pour un .XSD
    Bonjour,

    je suis stagiaire et l'on m'a confié pour tâche la "mavenisation" d'un projet autrefois buildé avec ANT.

    Une partie du build consiste à générer des classes à partir de fichiers XSD. J'utilise donc le plugin JAXB de Maven.

    Seulement j'ai léger soucis :
    - J'ai un répertoire qui contient plusieurs XSD, lesquels créent diverses classes. L'inconvénient est que certaines de ces classes possèdent le même nom. Dans l'ancienne appli, il était spécifié le nom des packages dans lesquels mettre ces classes.
    Sous Maven je ne peux générer qu'un package (<generatePackage>nomDuPackage</generatePackage>) ce qui ne m'intéresse absolument pas.

    Voici l'état actuel des choses... ce qui ne me convient donc pas du tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <plugin>
    	<groupId>com.sun.tools.xjc.maven2</groupId>
    	<artifactId>maven-jaxb-plugin</artifactId>
    	<executions>
    		<execution>
    			<goals>
    				<goal>generate</goal>
    			</goals>
    		</execution>
    	/executions>				
    	<configuration>
                   <schemaDirectory>${basedir}/src/main/resources/xsd</schemaDirectory>
    		<includeSchemas>
                             <includeSchema>**/*.xsd</includeSchema>
    		</includeSchemas>					
    	</configuration>					
    </plugin>
    Voila donc ma question... comment puis-je spécifier pour certains fichiers XSD le nom du package dans lequel je veux intégrer les classes créées par ces fichiers ?

    L'idéal aurait été de pouvoir définir plusieurs configurations... m'enfin fonctionne pas donc voila, je m'en remets à vous.

    Merci d'avance et bonne chance ;-)
    Astemius.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Par défaut
    Bon beh je vais me répondre à moi-même au cas où dans des temps futurs quelqu'un aurait le même problème.

    En fait, j'ai changé de plugin utilisé en prenant celui chez mojo (en découvrant de ce fait la FAQ dont le seul point concernait ce problème ). Peut-être était-ce possible avec l'ancien plugin mais de toute façon celui de MOJO dispose de plus d'options...

    Bon un bout de code vaut mieux que de longs discours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <plugin>
    	<groupId>org.codehaus.mojo</groupId>
    	<artifactId>jaxb2-maven-plugin</artifactId>
    	<executions>					
    		<execution>
    			<id>1</id>
    			<goals>
    				<goal>xjc</goal>
    			</goals>
    			<configuration>
    				<staleFile>${project.build.directory}/generated-sources/jaxb/package1/.staleFlag</staleFile>
    				<schemaDirectory>dossierContenantXsd</schemaDirectory>					
    				<packageName>package1</packageName>
    				<schemaFiles>fichierXsd</schemaFiles>
    				<clearOutputDir>false</clearOutputDir>
    			</configuration>
    		</execution>
    		<execution>
    			<id>2</id>
    			<goals>
    				<goal>xjc</goal>
    			</goals>
    			<configuration>
    				<staleFile>${project.build.directory}/generated-sources/jaxb/package2/.staleFlag</staleFile>
    				<schemaDirectory>dossierContenantXsd</schemaDirectory>
    				<packageName>package2</packageName>
    				<schemaFiles>fichierXsd</schemaFiles>
    				<clearOutputDir>false</clearOutputDir>
    			</configuration>
    		</execution>
    	</executions>				
    </plugin>
    Donc voila, faut autant de XSD qu'on souhaite de package...
    Le clearOutputDir à false évite de supprimer les dossier contenant les sources créées. Et le staleFile... bah il le faut sinon ça ne fonctionne pas... en gros c'est pour qu'il différencie correctement les <execution>.

    Voila voila, les problèmes sont loin d'être fini pour moi avec Maven mais en tout cas celui-ci est réglé.

    Amusez-vous bien,
    Astemius

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    merci, ton post m'a été utile aujourd'hui !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [perl packager] package pour windows depuis linux
    Par doudweb dans le forum Modules
    Réponses: 1
    Dernier message: 10/09/2006, 22h54
  2. PB compilation sur Package pour programme dos.
    Par Fbartolo dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/06/2006, 19h29
  3. Package pour gerer le protocole NNTP (Newsgroups) ???
    Par Gunsnake dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/04/2006, 12h39
  4. Package pour Dev-C++
    Par rad_hass dans le forum Dev-C++
    Réponses: 2
    Dernier message: 31/10/2005, 20h14
  5. [WEB] package pour 'surfer' sur le web
    Par narmataru dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 28/06/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo