我的问题有点普遍,但它也与Gradle有关 .
Why we need compile and runtime configuration?
当我编译一些东西时,我需要工件来转换我的字节码中的java类,所以我需要编译配置,但为什么需要运行时配置我还需要别的东西在JVM中运行我的应用程序?
对不起,如果它听起来很愚蠢,但我不明白 .
在最常见的情况下,编译时所需的工件是运行时所需的工件的子集 . 例如,假设一个名为 app 的程序使用库 foo ,库 foo 内部使用库 bar . 然后只需要 foo 来编译 app ,但运行它需要 foo 和 bar . 这就是为什么默认情况下,你在Gradle的 compile 配置上放置的所有东西在 runtime 配置上也是可见的,但事实恰恰相反 .
app
foo
bar
compile
runtime
1 回答
在最常见的情况下,编译时所需的工件是运行时所需的工件的子集 . 例如,假设一个名为
app
的程序使用库foo
,库foo
内部使用库bar
. 然后只需要foo
来编译app
,但运行它需要foo
和bar
. 这就是为什么默认情况下,你在Gradle的compile
配置上放置的所有东西在runtime
配置上也是可见的,但事实恰恰相反 .