Differenza tra le configurazioni di compilazione e runtime in Gradle


102

La mia domanda è un po 'comune, ma è anche collegata a Gradle.

Perché abbiamo bisogno della compilazione e della configurazione del runtime?

Quando compilo qualcosa, ho bisogno di artefatti per convertire le mie classi java in bytecode, quindi ho bisogno della configurazione della compilazione, ma perché è necessaria la configurazione del runtime, ho bisogno di qualcos'altro per eseguire la mia applicazione in JVM?

Scusa se sembra stupido, ma non capisco.

Risposte:


149

Nel caso più comune, gli artefatti necessari in fase di compilazione sono un sottoinsieme di quelli necessari in fase di esecuzione. Ad esempio, supponiamo che un programma chiamato apputilizzi la libreria fooe la libreria utilizzi foo internamente la libreria bar. Quindi fooè necessario solo per compilare app, ma sono necessari entrambi fooe barper eseguirlo. Questo è il motivo per cui per impostazione predefinita, tutto ciò che si inserisce nella compileconfigurazione di Gradle è visibile anche nella sua runtimeconfigurazione, ma non è vero il contrario.


20
Peccato che questo non sia menzionato esplicitamente in gradle.org/docs/current/userguide/dependency_management.html . Usano sia la compilazione che il runtime senza indicare esplicitamente il loro significato ...
silasdavis

2
@silasdavis Nella documentazione spiega la differenza: gradle.org/docs/current/userguide/… in 8.3. Configurazioni delle dipendenze
angelcervera

@angelcervera Ah, è così, 8. Nozioni di base sulla gestione delle dipendenze e 51. Gestione delle dipendenze. Posso capire perché hanno due sezioni, ma forse sarebbe bello se la seconda facesse riferimento alla prima. Penso di essere arrivato al 51 e mi aspettavo che rendesse conto completo.
silasdavis

@silasdavis True. Lo stesso per le altre sezioni della documentazione. Devo prendermi lo stesso tempo libero per leggere tutta la documentazione dalla A alla Z.
angelcervera

1
@Peter Niederwieser Se l'attività di compilazione mostra le stesse dipendenze del runtime, in quale scenario useresti il ​​runtime anziché la compilazione?
rj2700
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.