2011-11-29 15 views
9

Tengo un archivo pom.xml con lo siguiente:Maven no copiar los archivos que no son Java

<sourceDirectory>${basedir}/src/main/test</sourceDirectory> 
<outputDirectory>${basedir}/src/main/bin </outputDirectory> 

Dentro ${basedir}/src/main/test Tengo algunas carpetas que no contienen ningún archivo .java. Cuando comienzo una compilación, no se copian en el directorio ${basedir}/src/main/bin.

Solo los archivos .java se mueven (después de la compilación por supuesto) y se almacenan en la carpeta derecha.

¿Alguien me puede ayudar a resolver este problema sin usar ningún complemento?

he intentado con

<resources> 
     <resource> 
      <filtering>false</filtering> 
      <directory>${basedir}/src/main/test/scenarios</directory> 
      <includes> 
       <include>*.xml</include> 
      </includes> 
      <targetPath>${basedir}/src/main/bin/scenarios</targetPath> 
     </resource> 

     <resource> 
      <filtering>false</filtering> 
      <directory>${basedir}/src/main/test/sut</directory> 
      <includes> 
       <include>*.xml</include> 
      </includes> 
      <targetPath>${basedir}/src/main/bin/sut</targetPath> 
     </resource> 

    </resources> 

Pero no funciona. ¿Qué está mal?

+1

Funciona para mí con la estructura de carpetas y el fragmento de código anteriores. Tienes algún error? ¿Las carpetas se crean en 'src/main/bin'? ¿Tiene contenido '* .xml' en' src/main/test'? – Raghuram

+0

No encuentro ningún error pero no funciona, el objetivo de directorio es creado por el estado de compilación, ¿puede ser este el problema principal? – pedr0

+0

'mvn compile' no crea la carpeta de destino; 'mvn package' o' mvn install' sí. ¿Qué quieres hacer después de copiar los contenidos en 'src/main/bin'? ¿Deberían entrar estos en el 'jar'? Si es así, tienes más trabajo para personalizar el 'maven jar plugin'. – Raghuram

Respuesta

14

Si no son archivos java, debe moverlos al directorio src/main/resources y/o src/test/resources. Esa es la convención maven para almacenar los archivos que no son de Java.

Su otra opción es usar el maven-resources-plugin.

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.3</version> 
     </plugin> 
    </plugins> 
    <resources> 
     <resource> 
     <directory>src/main/test</directory> 
      <includes> 
       <include> <the_files_you_want_to_include></include> 
      </includes> 
     </resource> 
    </resources> 

Usted tiene otra opción es utilizar el maven-antrun-plugin y ejecutar una tarea de hormiga para copiar los archivos manualmente.

+0

Necesito retenerlos aquí .. Existe una solución alternativa? – pedr0

+0

pedr0: ¿Por qué exactamente necesitas sostenerlos allí? Maven los copiará con el nombre correcto del paquete en el artefacto final (jar/war). Entonces, si está buscando recursos, debería funcionar bien. – CoolBeans

+0

Mi problema es que tengo que trabajar con JSystem, que DEBE tener una estructura de carpetas particular. – pedr0

Cuestiones relacionadas