notes - grails version




Grails BuildConfig.groovy, diferencia entre compilación, compilación y tiempo de ejecución? (3)

Cuál es la diferencia entre build , runtime y compile en BuildConfig.groovy ( BuildConfig.groovy )

grails.project.dependency.resolution = {

    plugins {
        build "acme:acme-cache:latest.integration"
    }

    dependencies {
        build "com.foo.bar:foobar:1.0.5"       
        runtime "org.apache.httpcomponents:httpclient:4.0.3"
        compile("com.thoughtworks.xstream:xstream:1.3.1")
    }
}


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


  • build - dependencia que solo necesita el proceso de compilación
  • runtime : dependencia que se necesita para ejecutar la aplicación, pero no compilarla, por ejemplo, la implementación de JDBC para un proveedor de base de datos específico. Normalmente, esto no sería necesario en tiempo de compilación porque el código solo depende de la API de JDBC, en lugar de una implementación específica de la misma.
  • compile : dependencia necesaria 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 solo es necesaria para las pruebas, por ejemplo, una biblioteca de burla / prueba
  • provided - dependencia que se necesita en tiempo de compilación, pero que no se debe empaquetar con la aplicación (generalmente porque la proporciona el contenedor). Un ejemplo es la API Servlet