2011-11-29 15 views

Respuesta

17

No está claro si quería excluir frascos con test alcance o frascos de prueba (relacionados testclasificador). En cualquier caso, hay dos propiedades de dependency:copy-dependencies que pueden ayudarlo.

  • excludeClassifiers Coma Lista separada de clasificadores para excluir. Empty String indica que no excluye nada (predeterminado).
  • excludeScope Alcance para excluir. Una cadena vacía indica que no hay ámbitos (valor predeterminado).
+7

Gracias por las sugerencias, uso compile y funciona. Gracias. – Mike

+2

@Raghuram Mike aquí planteó un punto, no se puede excluir la prueba de alcance. ver http://stackoverflow.com/questions/5850788/filter-dependencies-copied-by-mavens-copy-dependency – Dudi

+0

Estoy usando '' para provisiones, las dependencias transitivas no se copian para el alcance predeterminado, aunque '' es falso –

19

Mike respondió a su propia pregunta en un comentario anterior. Creo que el caso de uso de Mike es similar al mío donde quiero copiar todos los archivos jar de los que dependo, así como mi propio jar para crear una jerarquía de directorios suficiente para ejecutar el programa sin incluir esas dependencias directamente en mi propio contenedor.

La respuesta de lograr esto es:

<includeScope>compile</includeScope> 

Esta directiva entra en la sección de la pom.xml para el plugin maven-dependencia. Por ejemplo:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${project.build.directory}/lib</outputDirectory> 
       <includeScope>compile</includeScope> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

excludeScope no funcionará porque al excluir la prueba cancela la compilación y excluye todos los ámbitos posibles. En cambio, el alcance incluido debe ser ajustado.

+0

El uso de ' runtime' puede ser mejor aún, ya que copia las dependencias de compilación y tiempo de ejecución. Por ejemplo, si usa el registro de SLF4J, entonces el 'slf4j-api' sería una dependencia del tiempo de compilación, mientras que los puentes (' jcl-over-slf4j', 'jul-a-slf4j') y el back-end (por ejemplo' slf4j -log4j12') serían dependencias de tiempo de ejecución. – zwets

Cuestiones relacionadas