107

私の質問は少し一般的ですが、Gradle にもリンクされています。

なぜコンパイルとランタイム構成が必要なのですか?

何かをコンパイルするとき、Java クラスをバイトコードに変換するためのアーティファクトが必要なので、コンパイル構成が必要ですが、JVM でアプリケーションを実行するためにランタイム構成が必要なのはなぜですか?

ばかげているように聞こえたら申し訳ありませんが、わかりません。

4

2 に答える 2

153

最も一般的なケースでは、コンパイル時に必要なアーティファクトは、実行時に必要なアーティファクトのサブセットです。たとえば、というプログラムappが library を使用しfoo、 library がfoo 内部的に library を使用しているとしますbar。次にfoo、コンパイルに必要なのは のみですが、実行にはとappの両方が必要です。これが、デフォルトで、Gradle の構成に追加したすべてのものがその構成にも表示される理由ですが、その逆は当てはまりません。foobarcompileruntime

于 2013-05-22T20:40:29.997 に答える