2011-01-14 13 views
12

Depende de algunos artefactos que necesito para compilar y ejecutar mi aplicación.¿Por qué tengo que especificar tanto 'runtime' como 'compile' para la misma dependencia?

Según los docs Gradle, la configuración de ejecución extiende la configuración de compilación, por lo que seguramente la adición de una dependencia usando runtime implica un compile dependencia implícita?

Al menos esa fue mi suposición, pero no funciona. Cuando solo depende del artefacto que usa runtime, mi proyecto ya no se compila. Yo, literalmente, tengo que:

compile 'oauth.signpost:signpost-core:1.2.1.2' 
runtime 'oauth.signpost:signpost-core:1.2.1.2' 

para la aplicación tanto a compilar y ver las clases del poste indicador en tiempo de ejecución.

¿Echo de menos algo? Eso simplemente no se ve bien ...

Respuesta

20

Casi a la derecha. La configuración en tiempo de ejecución, de hecho, amplía la configuración de compilación (docs). Significa que cualquier dependencia agregada a compilar la configuración está disponible en runtime configuración (docs).

compile 'oauth.signpost:signpost-core:1.2.1.2' será suficiente para obtener este artefacto tanto en tiempo de ejecución como en compilación.

+2

Veo - qué extraño. Solo trato de entender cómo funciona esto entonces. Mirando http://www.gradle.org/0.9.1/docs/userguide/userguide_single.html#sec:java_plugin_and_dependency_management, ¿eso significa que cualquier configuración en la figura 20.2 es una combinación de todas las configuraciones que tienen flechas de entrada a ella? ? Pensando en la "extensión" en el clásico tipo de "herencia", uno asumiría lo contrario. – Matthias

+0

Ah, ¿es correcto suponer entonces que la configuración de 'tiempo de ejecución' de Gradle corresponde al alcance 'proporcionado' de Maven? – Matthias

+1

En el diagrama 20.2 de la guía de usuario, cualquier configuración es una combinación de todas las rutas * de salida *, p. 'testRuntime' incluye todo desde' runtime' y 'compile', porque la flecha de salida muestra que' testRuntime' extiende 'runtime' –

Cuestiones relacionadas