Может ли Мейвен предоставить обзор, быть транзитивным?

У меня есть зависимость от Ancestor, которая имеет зависимую область видимости, как указано, мне нужно распространять эту область видимости на все, что зависит от моего проекта.

Например, скажем, у меня есть SomeProjectA, который зависит от SomeLibraryB. Мне нужен объем SomeLibraryB.

В настоящее время для компиляции всего, что зависит от SomeProjectA, необходимо также установить SomeLibraryB. Я предпочел бы распространять эту область охвата, тогда у меня есть проект, который зависит от моей работы с моими иждивенцами проекта.

Ответы

Ответ 1

Я не думаю, что это возможно. Каждый проект должен самостоятельно объявлять предоставленные зависимости. Распространение этой области было бы неправильным, поскольку вы сделали бы предположение о развертывании, которое вы не можете сделать, поскольку не отвечаете за развертывание. Пользователь вашей библиотеки делает это.

Ответ 2

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

Другими словами, если вы добавляете зависимость к проекту jar без явного указания его области действия, эта зависимость будет доступна во время компиляции, и так будут зависимости зависимостей. Если вы затем явно заявляете, что зависимость предоставила область, это не изменяется.