2012-01-05 18 views

Respuesta

96
  • build - dependencia que sólo se necesita por el proceso de construcción
  • runtime - dependencia que se necesita para ejecutar la aplicación, pero no compila por ejemplo, Implementación de JDBC para un proveedor de base de datos específico. Esto normalmente no sería necesario en tiempo de compilación porque el código solo depende de la API JDBC, en lugar de una implementación específica de la misma
  • compile - dependencia que se necesita tanto en tiempo de compilación como en tiempo de ejecución. Este es el caso más común

Hay un par de otros ámbitos de dependencia:

  • test - dependencia que sólo se necesita por las pruebas, por ejemplo, una biblioteca de simulación/prueba
  • provided - dependencia que se necesita en tiempo de compilación pero que no se debe empaquetar con la aplicación (generalmente porque viene del contenedor). Un ejemplo es la API de Servlet
+1

Gracias, Don, gran información, solo otra pregunta rápida ... la convención para 'build' parece seguir' "groupId: artifactId: repository or version" ', ¿es lo mismo para el tiempo de ejecución y compilar también? – raffian

+0

sí, la misma convención para todos los ámbitos. Nunca uso el 'repositorio' - ni siquiera sabía que existía, así que en mi caso especifico' groupId: artifactId: version' –

+0

Estamos usando Artifactory para almacenar todos nuestros artefactos, por eso lo mencioné. ..¡gracias de nuevo! – raffian

1

Un par de comandos Grails ayudan a ilustrar la diferencia. Considere grails run-app y grails compile. grails compile es el paso de compilación e incluirá dependencias en tiempo de compilación. grails run-app es el paso de ejecución e incluirá dependencias de tiempo de ejecución. Las dependencias de compilación son cualquier cosa que pueda necesitar para ejecutar cualquiera de estos comandos, por ejemplo, un script personalizado que enganche en algunos eventos de compilación.

Para que elija la que mejor se adapte cuando necesite estar seguro de que se incluye la dependencia.

5

Parece que las 2 respuestas anteriores entran en conflicto con la distinción entre compilación y compilación. Creo que build es el alcance que incluye grails compile y grails run-app, mientras que compilar es solo el primero.

Cuestiones relacionadas