Pregunta

Maven de éxito seguro (pruebas) plug-in mvn test-compile copia archivos en src/test/resources a target/test-classes. Se compila .java en src/test/java, y copia los archivos compilados a .class target/test-classes.

Pero no copia los recursos de src/test/java, y es más conveniente ser capaz de poner los recursos de pruebas en el mismo directorio que las clases .java que son recursos para, que en una jerarquía paralela en src/test/resources.

¿Es posible obtener Maven para copiar recursos de src/test/java?

¿Fue útil?

Solución

La copia de recursos se hace todo por el experto en recursos-plugin, y si usted lee el documento del mismo verá cómo agregar copia de los recursos de src / test / java.

http://maven.apache.org/plugins/maven-resources- Programas / testResources-mojo.html para el objetivo de la prueba de los recursos, que se incluye en el ciclo de vida del defecto.

Y a continuación, ver http://maven.apache.org/pom.html , y el aspecto de <testResources>.

Otros consejos

bmargulies dio la respuesta , pero vamos a llenar en algunos detalles.

<testresources> se puede añadir al nodo <build> de POM del proyecto, como este:

 <testResources>
  <testResource>
    <directory>${project.basedir}/src/test/java</directory>
  </testResource>
 </testResources>

Esa copia todo en src/test/java - incluyendo el código fuente .java, lo que no queremos.

También (como bmargulies solamente insinuados) anula y sustituye a la configuración por defecto <testResources> en el POM matriz estándar que todos los demás hereda de POM (a menos que se cambie la herencia). El copias matrices estándar src/test/resources, por lo que el sobreescribiendo, no conseguimos que copian, como de costumbre, lo que no queremos. (En particular, toda mi razón para hacer esto es utilizar unitils, que quiere que el archivo copiado unitils.properties -. Y eso es (para mí, de todos modos) en src/test/resources

Así que volver a añadir src/test/resources:

<testResources>
  <testResource>
    <directory>${project.basedir}/src/test/java</directory>
  </testResource>
  <testResource>
    <directory>${project.basedir}/src/test/resources</directory>
  </testResource>
</testResources>

Eso copias en el orden indicado, de manera que para los archivos que existen en tanto /src/test/java (y subdirectorios) y en /src/test/resources (y subdirectorios), la versión src/test/resources es el que termina en test-classes.

Ahora sólo tenemos que no copiar los archivos .java:

<testResources>
  <testResource>
    <directory>${project.basedir}/src/test/java</directory>
    <excludes>
        <exclude>**/*.java</exclude>
    </excludes>
  </testResource>
  <testResource>
    <directory>${project.basedir}/src/test/resources</directory>
  </testResource>
</testResources>

La única manera en que funcionaba para mí cuando me puse la configuración de la prueba en la carpeta src/test/resources (análogo de src/test/java de archivos de origen). Los archivos de esta carpeta se copia en la carpeta target/test-classes que está en la ruta de clase durante la ejecución pruebas. No sé por qué, pero la siguiente configuración no funcionó para mí:

<testResources>
  <testResource>
    <directory>${project.basedir}/src/test/java</directory>
    <excludes>
        <exclude>**/*.java</exclude>
    </excludes>
  </testResource>
  <testResource>
    <directory>${project.basedir}/src/test/resources</directory>
  </testResource>
</testResources>
  

¿Es posible obtener copia de Maven   recursos de src / test / java?

Sí, esto se logra fácilmente con la antRun complemento .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top