web-dev-qa-db-ja.com

Gradleのコンパイル構成とランタイム構成の違い

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

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

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

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

94
Xelian

最も一般的なケースでは、コンパイル時に必要な成果物は、実行時に必要な成果物のサブセットです。たとえば、appというプログラムがライブラリfooを使用し、ライブラリfoo内部がライブラリbarを使用するとします。 fooをコンパイルするにはappのみが必要ですが、実行するにはfoobarの両方が必要です。これがデフォルトで、Gradleのcompile構成に設定したすべてがruntime構成にも表示されますが、その反対は真実ではありません。

136