Мы также решили построить собственное ядро визуализации для печати. Если один и тот же код выводит графику на экран в студии и преобразует ее в графический формат, готовый к печати, то мы можем быть абсолютно уверены в том, что клиент получит именно то, что хотел.
Сначала мы полагали, что разные конфигурации будут представлять собой разные наборы файлов .jar. Мы создали несколько каталогов верхнего уровня для хранения кода каждого развертывания, а также общую папку Common. В каждой папке верхнего уровня находились собственные каталоги source, test и bin.
Прошло совсем немного времени, и мы разочаровались в этой структуре. Во-первых, в иерархии был один гигантский каталог /lib, в котором постепенно начали накапливаться библиотеки времени сборки и времени выполнения. Проблемы возникли и с размещением ресурсов: графики, цветовых профилей, конфигураций Hibernate, тестовых изображений и т. д. Некоторых участников также раздражало то, что нам приходилось управлять зависимостями файлов .jar вручную. Тогда, на заре проекта, целые пакеты запросто могли оказаться в постороннем каталоге. А во время выполнения класс отказывался загружаться, потому что он зависел от классов, упакованных в другой файл .jar.
Related posts: