Может ли Мейвен предоставить обзор, быть транзитивным?
У меня есть зависимость от Ancestor, которая имеет зависимую область видимости, как указано, мне нужно распространять эту область видимости на все, что зависит от моего проекта.
Например, скажем, у меня есть SomeProjectA
, который зависит от SomeLibraryB
. Мне нужен объем SomeLibraryB
.
В настоящее время для компиляции всего, что зависит от SomeProjectA
, необходимо также установить SomeLibraryB
. Я предпочел бы распространять эту область охвата, тогда у меня есть проект, который зависит от моей работы с моими иждивенцами проекта.
Ответы
Ответ 1
Я не думаю, что это возможно. Каждый проект должен самостоятельно объявлять предоставленные зависимости. Распространение этой области было бы неправильным, поскольку вы сделали бы предположение о развертывании, которое вы не можете сделать, поскольку не отвечаете за развертывание. Пользователь вашей библиотеки делает это.
Ответ 2
Как вы можете видеть из документации Maven, предоставленная область не влияет на компиляцию, а на время выполнения. В общем случае вам нужно будет указать только предоставленную область в зависимостях для проекта упаковки, например проекта типа war. По этой причине обычно не имеет большого значения, что она не является транзитивной.
Другими словами, если вы добавляете зависимость к проекту jar
без явного указания его области действия, эта зависимость будет доступна во время компиляции, и так будут зависимости зависимостей. Если вы затем явно заявляете, что зависимость предоставила область, это не изменяется.