Как просто управлять зависимостями модуля в Java SE - PullRequest
1 голос
/ 01 марта 2011

Я работаю над проектом Java SE, который имеет как библиотечную часть (несколько пакетов public классов), предназначенную для использования программами, написанными другими, так и прикладную часть (классы с main() методами), которые используют эта библиотека. Таким образом, среда установки должна обрабатывать возможность одновременного присутствия нескольких прикладных программ и использования различных версий библиотеки. Любые идеи о том, как справиться с этим? Как люди избегают JAR ад ?

Будущая версия Java будет включать в себя функциональность Jigsaw . Корпоративные приложения могут использовать функциональность компонента OSGi . Но что насчет приложений, не относящихся к Enterprise сейчас ? Есть ли что-нибудь попроще, чем OSGi, которая выполняет свою работу?


Изменить, после некоторых предварительных ответов: Я могу достаточно хорошо справиться с проблемой зависимости во время сборки, используя наш контроль версий и процесс сборки. Его помощь с проблемой зависимостей во время выполнения меня очень интересует.

Ответы [ 5 ]

2 голосов
/ 01 марта 2011

Конечно: Maven

Извините, неправильно прочитал вопрос.

Вы можете использовать OSGi (Equinox или Felix) в любом приложении, оно не обязательно должно быть корпоративным (серверным).

Тем не менее, вы можете легко контролировать видимость ваших классов, создавая URLClassLoader s по мере необходимости. Вот как это делают реализации OSGi.

1 голос
/ 01 марта 2011

Apache Ivy - это легкое решение. Он только управляет зависимостями и не пытается изменить систему сборки для соответствия.

0 голосов
/ 01 марта 2011

Я не знаю, что я когда-либо слышал термин «зависимость во время выполнения», используемый в контексте Java.Как я знаю, зависимости времени выполнения обычно обрабатываются в контексте приложения. Spring Framework является одним из таких способов управления контекстом приложения.

0 голосов
/ 01 марта 2011

Если все, что вам нужно, это разрешение зависимостей, то Apache Ivy отвечает всем требованиям. Он работает аналогично разрешению зависимостей Maven, но ему не хватает сложности, поскольку у него гораздо меньше функций.

0 голосов
/ 01 марта 2011

Использование Maven .

Apache Maven - это инструмент управления и понимания программного обеспечения. Основываясь на концепции объектной модели проекта (POM), Maven может управлять сборкой, отчетностью и документацией проекта из центральной части информации.

...