2017-01-13 3 views
0

Мы имеем следующую структуру проекта:ошибка ребенка зависимость Maven с родительской версии

parentPom.xml

  • проектов Java

  • StreamBase проецирует

    • streambaseParentPom.xml

      • project1

      • project2 (имеет зависимость project1)

Итак, мы имеем parentPom с наследует в streambaseParentPom и последним унаследовать всем StreamBase проектов. Итак, мы делаем attemp иметь в parentPom свойства, называемые cerebro.version, которые определяют версию для родителя. Мы получаем вопросы, когда мы имеем project1 в зависимости от других проектов, мы получаем следующее сообщение об ошибке:

[ERROR] Failed to execute goal on project eFX-SB7-Pricing: Could not resolve dependencies for project com.santander.fx:eFX-SB7-Pricing:jar:3.14.10.0.4-SNAPSHOT: 
Failed to collect dependencies at com.santander.fx:eFX-SB7-Common:jar:3.14.10.0.4-SNAPSHOT: 
Failed to read artifact descriptor for com.santander.fx:eFX-SB7-Common:jar:3.14.10.0.4-SNAPSHOT: 
Could not transfer artifact com.santander.fx:eFX-SB7-Parent:pom:${cerebro.version} from/to eFX-External-Repository (http://lnx-efxbuild2.ants.ad.anplc.co.uk:8081/artifactory/ext-release-local): 
Illegal character in path at index 109: http://lnx-efxbuild2.ants.ad.anplc.co.uk:8081/artifactory/ext-release-local/com/santander/fx/eFX-SB7-Parent/${cerebro.version}/eFX-SB7-Parent-${cerebro.version}.pom -> [Help 1] 

Спасибо заранее.

ответ

0

Я боюсь, что это не работает. Плохая идея параметризовать значение <version>, так как даже если вам удастся развернуть его на удаленном репо, любой проект, использующий этот артефакт позже, не имел бы понятия, к чему должно решить ${cerebro.version}.

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

+0

Таким образом, основная проблема заключается в том, что у нас есть зависимость, которая имеет тот же самый родитель, что и зависимые проекты. Если бы этот проект зависимостей был определен без переменных версии, он был бы решен? –

+0

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

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