2010-07-20 20 views
6

Estoy aprendiendo a usar maven para mis aplicaciones java independientes, pero no entiendo cómo hacer una copia recursiva de todos los directorios de/src/main/resources al directorio/taget .maven antrun copie los recursos al directorio de destino base

Intenté usar antrun y el complemento de recursos, pero los recursos se copian a/target/classes y no a/target.

¿Qué pasa aquí?

<build> 
    <pluginManagement><plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.4</version> 
    <executions> 
     <execution> 
     <phase>process-resources</phase> 
     <configuration> 
     <tasks> 
     <copy todir="${basedir}/target"> 
      <fileset dir="${basedir}/src/main/resources" includes="**/*" /> 
     </copy> 
     </tasks> 
     </configuration> 
     <goals> 
     <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> </pluginManagement> 
</build> 

Gracias por su ayuda.

EDITAR: Copiaría a directorios de destino como "contenedor", "registros", "conf", para poder probar la aplicación. y, con otra tarea de experto, empaque todo (archivos jar y bin/conf/tmp) en un archivo zip/tar.gz.

Respuesta

4
  • Probar con <plugins ... /> en lugar de <pluginManagement ... />.
  • Copiar cosas al objetivo para probarlo se siente un poco extraño. ¿Se ejecutará maven cada vez que necesite probar su aplicación?
+0

¡Finalmente, funciona! Me estaba volviendo loco debido a eso (tengo que investigar sobre las diferencias entre plugin y pluginmanagement) Usaré maven también para hacer unitTests, pero no copio recursos (un bounch de archivos estáticos) todo el tiempo. Gracias por su ayuda. – Antonio

0

Creo que estás utilizando maven de una manera incorrecta.

Normall no necesita "copiar" los recursos para orientar. Lo hace maven automáticamente ya.

Si usted tiene algunos recursos adicionales que se necesitan en las pruebas, puede agregar

<build> 
    <testResources> 
     <testResource> 
      <directory>${basedir}/src/test/anotherKindOfResourceDir</directory> 
     </testResource> 
    </testResources> 
<build> 

Y, según lo dicho por lexicore, no se supone que debe utilizar pluginManagement. "pluginManagement", al igual que "dependencyManagement", proporciona una "plantilla" cuando el proyecto realmente usa ese complemento/tiene esa dependencia. Eso significa que agregar pluginManagement/dependencyManagement no activará ningún complemento/no agregará ninguna dependencia a su proyecto.

+0

Gracias también por su respuesta, ahora sé la diferencia entre "pluginmanagement" y "plugin" – Antonio

+0

Creo que el problema principal no es realmente pluginManagement vs plugin. Creo que no es necesario que hagas eso para preparar los recursos de prueba de unidad –

Cuestiones relacionadas