Разница между конфигурациями компиляции и времени выполнения в Gradle


мой вопрос немного распространен, но он также связан с Gradle.

зачем нам нужна конфигурация компиляции и времени выполнения?

когда я компилирую что-то, мне нужны артефакты для преобразования моих классов java в байт-код, поэтому мне нужна конфигурация компиляции, но зачем нужна конфигурация времени выполнения мне нужно что-то еще для запуска моего приложения в JVM?

Извините, если это звучит глупо, но я не понимаю.

1 79

1 ответ:

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