2010-03-23 6 views
5

Tengo una aplicación Maven 2 RESTful utilizando Jersey/JAXB. Genero los beans JAXB desde un archivo de esquema, donde el archivo de esquema está en mi directorio de recursos, por ejemplo, src/main/resources/foo.xsd.Cómo agregar un archivo de mi árbol de origen a Maven Site

Quiero incluir el archivo foo.xsd en el sitio Maven generado para mi proyecto, de modo que los clientes puedan ver el esquema XML al escribir llamadas RESTful.

¿Cómo puedo incluir foo.xsd en el sitio?

Podría tener una copia del archivo en src/main/site/..., y luego actualizar mi site.xml para señalarlo (o tener un .apt cuyo contenido apunte a él), pero no Me gusta porque todavía estoy retocando foo.xsd, y no quiero tener que recordar copiarlo cada vez que lo actualizo. Y eso es solo una mala práctica.

También intenté tener un archivo .apt que tenga un enlace al foo.xsd que se copia en el directorio de destino/clases. Eso funciona hasta que hago un sitio: implementar, porque eso solo copia el directorio de destino/sitio.

Gracias,

Charles

Respuesta

6

Para agregar recursos a su sitio, usted tiene que ellos incluyen en un directorio de recursos:

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

Para mantener este archivo en sincronía con la generada, se puede simplemente utilizar el antRun experto Plugin para copiar el archivo generado a partir de src/main/resources a la ubicación anterior, por ejemplo, durante la fase 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> 

por último, añadir un enlace a esta foo.xsd descripto en su sitio r (el archivo site.xml).

+0

¡Gracias, eso funciona perfectamente! –

+0

@Charles De nada. –

0

Tome un vistazo a este link. Describe cómo personalizar la navegación y agregar recursos al sitio generado Maven.

+0

Gracias, había visto ese enlace, y de ahí surgió la idea que está en mi pregunta sobre cómo copiar el archivo .xsd de mi árbol de src/main/resources al árbol de/src/site. Que es una solución que no me gusta ... El enlace describe cómo agregar archivos estáticos al árbol de src/sitio para que aparezcan en el informe; Estoy tratando de evitar tener dos copias de mi archivo .xsd. Espero que haya una manera de hacerlo sin escribir mi propio complemento de informes Maven. –

+0

Simplemente copie el archivo en la ubicación que necesita como parte de la compilación de Maven. Pascal sugiere una forma de hacer esto. –

Cuestiones relacionadas