2015-08-07 4 views
0

Я ищу способ гарантировать, что все функции, которые я развертываю в Karaf, требуют зависимостей, которые имеют одинаковую версию. Проект состоит из более чем 40 комплектов, что затрудняет проверку вручную.Убедитесь, что пакеты имеют одинаковые версии зависимостей

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

ответ

1

Если вы хотите быть уверены, что используете одни и те же версии, тогда создайте родительский проект и определите только версии зависимостей. Поэтому вы можете быть уверены, что все ваши модули имеют одинаковые зависимости. Конечно, это имеет смысл только в том случае, если все эти модули очень тесно связаны (например, принадлежат к одной и той же части приложения/выпуска).

+0

нет, они не являются :) вот почему я ищу более совершенную систему – Oleg

+0

Если они не связаны друг с другом, вам не следует требовать, чтобы они требовали одинаковых зависимостей. Это создало бы плотную связь между компонентами, которые могут дать вам много головных болей. Вместо этого используйте гибкость OSGi обеспечивает и использует диапазоны импорта. Btw. Karaf также позволяет использовать диапазоны импорта по возможностям, которые могут помочь. –

1

Почему вы даже хотите это сделать? Каждый пакет должен зависеть от версий требуемого пакета, и эта зависимость должна быть диапазоном. Поэтому, если вы компилируете и пакет API версии 1.0.0, и вы являетесь потребителем этого API, тогда вы должны импортировать его с диапазоном [1.0.0, 2.0.0). Подробнее см. Спецификацию OSGi Core Release 5, раздел 3.7.3 («Semantic Versioning»).

Во время выполнения OSGi Framework гарантирует, что ваш комплект подключен к версии пакета, которая находится в пределах разрешенного диапазона. Очевидно, что если у вас есть неперекрывающиеся диапазоны версий от разных импортеров, тогда Framework не сможет удовлетворить их одним экспортером.

Смежные вопросы