Я медленно начинаю понимать важность конфигураций модулей во вселенной Ivy.Однако мне все еще трудно ясно видеть, как один и тот же кусок кода может иметь разные конфигурации, которые имеют разные требования к зависимостям (единственное исключение - в случае test конфигов, которые требуют JUnit поверх обычногозависимости - я на самом деле понимаю, что 100%!)
Например, возьмите следующий код:
package org.myorg.myprogram.core;
// Import an object from a dependency
import org.someElse.theirJAR.Widget;
public class MyCode
{
public MyCode()
{
if(Widget.SOME_STATIC == 3)
System.out.println("Fizz");
else
System.out.println("Buzz");
}
}
Теперь, кроме того факта, что это ужасный кодЯ просто не вижу, как моя программа (которая, давайте представим, что JARred в MyProgram.jar) может быть настроена на несколько «конфигураций»;некоторым из них может потребоваться theirJAR
и его класс Widget
, а другим - нет. Мне, если мы не сможем предоставить MyCode
Widget
, он умрет во время выполнения, всегда.
Опять же, я понимаю необходимость тестовых конфигураций;просто больше ничего (я также задавал вопросы о зависимостях компиляции и времени выполнения, и, наверное, я тоже вижу необходимость в них).Но помимо тестовых конфигов, конфигов во время компиляции и конфигов во время выполнения, какие другие конфигурации модулей вам могут понадобиться?Как MyCode понадобился бы виджет в некоторых случаях, а не в других случаях, и все же он без проблем работал бы без виджета?
Я очень признателен за любую помощь, которая поможет мне обернуть это!