У меня проблема с согласованием создания проекта для использования на сервере приложений и для использования в качестве автономного приложения.
Чтобы дать общий упрощенный контекст, скажем, у меня есть три проекта A, B, C.
Проект A зависит от проекта B, который зависит от проекта C.
Проект C имеет зависимость X, которая помечена как предоставленная, так как ожидалось, что он будет доступен как JEEБиблиотека внутри, скажем, сервер приложений.т.е. jms.jar.
Так что, если я выполню сборку сборки Project A, я получу все переходные зависимости, кроме тех, которые помечены как предоставленные как ожидалось.
Теперь у меня есть новый сценарий развертываниягде Project A необходимо использовать в автономной среде, то есть вне сервера приложений.
Так что теперь мне нужен jms jar для зависимости от компиляции.Означает ли это, что я должен явно добавить зависимость компиляции для X в Project A?Не нарушает ли это Закон Деметры, то есть не разговаривать с незнакомцами, в том смысле, что Проект А не должен явно знать о Проекте С, а только о Проекте Б?
Это простой пример, но вна самом деле у меня есть несколько зависимостей, которые были помечены как предоставленные, но теперь они должны быть зависимостями компиляции или среды выполнения, чтобы они оказались в артефакте, создаваемом плагином сборки maven.
Это фундаментальная проблема с Maven илиЯ не правильно использую инструменты?
Заранее спасибо за любые рекомендации.