2011-01-14 15 views
12

Uygulamamı hem derlemek hem de çalıştırmam gereken birkaç esere bağlıyım.Neden her ikisi de aynı bağımlılık için 'runtime' ve 'compile' belirtmeli?

Gradle dokümanlar göre, çalışma zamanı yapılandırma derleme konfigürasyonu uzanır, yani kesinlikle runtime kullanarak bir bağımlılık ekleyerek örtülü bir compile bağımlılığı ifade eder?

En azından

benim varsayım, ama çalışmıyor. Yalnızca runtime kullanarak yapaylığa bağlı olarak, projem artık derlenmiyor. hem derlemek ve zamanında Signpost sınıfları görmek uygulama için

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

: Tam anlamıyla gerekiyor.

Bir şey mi eksik? Bu sadece

cevap

20

Neredeyse doğru ... doğru görünmüyor. Çalışma zamanı yapılandırması, gerçekten , derleme yapılandırmasını genişletir (docs). Bu, herhangi bir bağımlılık yapılandırma zamanı konfigürasyon (docs) mevcuttur derleme eklenen anlamına gelir.

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

, hem de çalışma zamanını bu objeyi almak ve derlemek için yeterli olacaktır.

+2

Anladım - ne kadar tuhaf. Sadece bunun nasıl çalıştığını anlamaya çalışıyorum. http://www.gradle.org/0.9.1/docs/userguide/userguide_single.html#sec:java_plugin_and_dependency_management baktığımızda, bu rakam 20.2 herhangi bir yapılandırma kendisine gelen okları olan tüm yapılandırmalar bir arada olduğu anlamına gelmez ? Klasik 'kalıtım' türünde 'uzatma' düşünmek, tam tersini düşünür. – Matthias

+0

Oh ve: Gradle'ın 'çalışma zamanı' yapılandırmasının Maven'in 'sağlanan' kapsamına karşılık geldiğini varsaymak doğru mu? – Matthias

+1

Kullanıcı kılavuzu şemasında 20.2 herhangi bir konfigürasyon, tüm * dışa dönük * yollarının, örn. Giden ok testRuntime' 'Ben de aynı mantık,' runtime' yer alacağını takip ederek, bunu düşünüyordum –

İlgili konular