2010-03-23 12 views
5

Ho un'applicazione Maven 2 RESTful che utilizza Jersey/JAXB. Genero i bean JAXB da un file di schema, in cui il file dello schema si trova nella mia directory delle risorse, ad es. Src/main/resources/foo.xsd.Come aggiungere un file dall'albero dei sorgenti al sito Maven

Desidero includere il file foo.xsd nel sito Maven generato per il mio progetto, in modo che i client possano vedere lo schema XML durante la scrittura di chiamate RESTful.

Come posso includere foo.xsd nel sito?

Potrei avere una copia del file in src/main/site/..., quindi aggiornare il mio sito.xml per puntarlo (o avere un .apt il cui contenuto punta ad esso), ma io Mi piace perché sto ancora ottimizzando foo.xsd, e non voglio dover ricordare di copiarlo ogni volta che lo aggiorno. E questa è solo una cattiva pratica.

Ho anche provato ad avere un file .apt che ha un collegamento al file foo.xsd che viene copiato nella directory target/classes. Funziona finché non faccio un sito: deploy, perché copia solo la directory target/del sito.

Grazie,

Charles

risposta

6

Per aggiungere risorse al tuo sito, avrete necessario essi includono in una directory di risorse:

 
. 
`-- src 
    `-- site 
     `-- resources 
      `-- foo.xsd 

Per mantenere questo file in sincronia con il generato uno, si può semplicemente utilizzare l'antrun Maven Plugin per copiare il file generato dal src/main/resources alla posizione al di sopra, per esempio durante la fase di pre-site:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>pre-site</phase> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     <configuration> 
      <tasks> 
      <copy file="src/main/resources/foo.xsd" todir="src/site/resources"/> 
      </tasks> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

Infine, aggiungere un link a questo foo.xsd nel tuo sito descripto r (il file site.xml).

+0

Grazie, funziona perfettamente! –

+0

@Charles Prego. –

0

Date un'occhiata a questo link. Descrive come personalizzare la navigazione e aggiungere risorse al sito generato da Maven.

+0

Grazie, ho visto quel collegamento, ed è lì che ho avuto l'idea che è nella mia domanda su come copiare il file .xsd dalla mia struttura src/main/resources all'albero/src/site. Qual è una soluzione che non mi piace ... Il collegamento descrive come aggiungere file statici all'albero src/sito per comparire nel report; Sto cercando di evitare di avere due copie del mio file .xsd. Spero che ci sia un modo per farlo senza scrivere il mio plug-in di segnalazione Maven. –

+0

Basta copiare il file nella posizione desiderata come parte del build di Maven. Pascal suggerisce un modo per farlo. –

Problemi correlati