Разница между конфигурациями компиляции и времени выполнения в Gradle
мой вопрос немного распространен, но он также связан с Gradle.
зачем нам нужна конфигурация компиляции и времени выполнения?
когда я компилирую что-то, мне нужны артефакты для преобразования моих классов java в байт-код, поэтому мне нужна конфигурация компиляции, но зачем нужна конфигурация времени выполнения мне нужно что-то еще для запуска моего приложения в JVM?
Извините, если это звучит глупо, но я не понимаю.
1 ответ:
в наиболее распространенном случае артефакты, необходимые во время компиляции, являются подмножеством тех, которые необходимы во время выполнения. Например, допустим, что программа называется
app
использует библиотекуfoo
, и библиотекаfoo
внутри использует библиотекуbar
. Тогда толькоfoo
нужен для компиляцииapp
, а какfoo
иbar
необходимы для его запуска. Поэтому по умолчанию все, что вы положили на Gradle в-Хcompile
конфигурация также видна на егоruntime
настройки, но обратное неверно.